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

  • adrianisen

    adrianisen

    25 Kasım 2009
  • KarnasCamillo

    KarnasCamill

    24 EKİM 2007
  • snookie77

    snookie77

    2 Mart 2006

İLGİLİ SORU / CEVAPLAR