如何才能避免过多的case子句

一个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添加新条件的访问方法就行,这样就很好作到一个条件管理一个逻辑

只能
case A:
case B:
break;

将 case 分支分成多个函数,对条件 A,B,C... 和函数做一个 map 映射,然后根据条件使用 java 反射机制调用相应函数。

观察者模式