Ich habe eine Java-Controller-Klasse, wenn je Speichern Aktion aufgerufen wird in jedem Artikel sagen, Produkt oder Abdeckung oder Limit, ruft es die Controller-Save-Methode und ein Parameter wird übergeben. Die if-Logik im Controller überprüft das Argument und ruft die Speichermethode des entsprechenden Objekts auf. Die if-Logik wird von Tag zu Tag größer. Kann jemand besseres Entwurfsmuster vorschlagen?Wie reduziere ich, wenn sonst Dschungel von meinem Controller?
Code:
public class Product {
public void save(PolicyData p){
//logic here
}
}
public class Coverage {
public void save(PolicyData p){
//logic here
}
}
public class Limit {
public void save(PolicyData p){
//logic here
}
}
public class Controller {
private Product pr=new Product();
private Limit lim=new Limit();
private Coverage cov=new Coverage();
public void save(PolicyData p,String item){
if(item.equals("Product")){
pr.save(p);
}if(item.equals("Coverage")){
cov.save(p);
}if(item.equals("Limit")){
lim.save(p);
}
}
}
A "Speicherbare" Schnittstelle und ein 'Map' funktionieren würde. –
Fragen wie diese gehören hier http://codereview.stackexchange.com/ – Michal