一个switch语句里面 如果有50个case子句
switch(pt){
case A:
break;
case B:
break;
.....
}
以后维护起来肯定很困难,有什么好的方法能避免 或者替换掉?
一个switch语句里面 如果有50个case子句
switch(pt){
case A:
break;
case B:
break;
.....
}
以后维护起来肯定很困难,有什么好的方法能避免 或者替换掉?
用访问者模式来做就很好.
1.把每个条件作成一个类,比如 A条件
[code="java"]class A {
public void accept(){
//处理逻辑
}
}[/code]
然后把每个条件的处理方法都用一个类来管理.
[code="java"]public class CommonVisitor{
public void visit(A a){
a.accept();
}
//其他条件的访问方法
public void visit(B b){
b.accept();
}
}[/code]
main里面就这样调用就行.
[code="java"]public static void main(Stirng args[]){
CommonVisitor visitor = new CommonVisitor();
//如果是想用A条件,则
visitor.visit(new A());
}[/code]
这样写的好处,以后先加条件的话我只需要定义新的条件类就行,还有就是在CommonVisitor添加新条件的访问方法就行,这样就很好作到一个条件管理一个逻辑