SORU
29 Temmuz 2009, ÇARŞAMBA


Java'da if uzun bir liste

Bir soru bu cevap bulamıyorum üzgünüm, başka biri daha önce yükseltti neredeyse eminim.

Benim sorunum bazı sistem kütüphaneleri, gömülü cihazlar çalıştırmak için yazıyorum. Radyo yayınları üzerinden bu cihazlara gönderilebilir hangi komutlar var. Bu sadece metin tarafından yapılabilir. sistem kütüphaneleri içinde bu gibi görünüyor hangi komutları işleyen bir konu var

if (value.equals("A")) { doCommandA() }
else if (value.equals("B")) { doCommandB() } 
else if etc. 

Sorun kontrolden hızlı bir spiral olacak komutlar var. Bak, acı korkunç hata ayıklama ve bir kaç ay içinde anlamak için akıllara durgunluk verici.

CEVAP
29 Temmuz 2009, ÇARŞAMBA


Command pattern kullanarak:

public interface Command {
     void exec();
}

public class CommandA() implements Command {

     void exec() {
          // ... 
     }
}

// etc etc

sonra Map<String,Command> bir nesne oluşturmak ve Command örnekleri ile doldurun:

commandMap.put("A", new CommandA());
commandMap.put("B", new CommandB());

daha sonra değiştirebilirsinizeğer/eğer başkazincir:

commandMap.get(value).exec();

EDİT

ayrıca UnknownCommand NullCommand gibi özel komutlar ekleyebilirsiniz ama müşteri çekleri en aza indirmek için bu köşe davalara bakan CommandMap gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007
  • Julia Graf

    Julia Graf

    6 Mayıs 2006
  • Major FX

    Major FX

    6 HAZİRAN 2012

İLGİLİ SORU / CEVAPLAR