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
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.