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

  • FILIPeeeK

    FILIPeeeK

    22 Mayıs 2006
  • MyCyberAcademy

    MyCyberAcade

    2 EKİM 2011
  • trickycharms

    trickycharms

    6 Aralık 2013

İLGİLİ SORU / CEVAPLAR