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

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • KittiesMama

    KittiesMama

    10 AĞUSTOS 2008
  • kndx

    kndx

    11 Mart 2006

İLGİLİ SORU / CEVAPLAR