蓝翔招生办 2011-01-21 17:26
浏览 467
已采纳

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

一个switch语句里面 如果有50个case子句

switch(pt){
case A:
break;
case B:
break;
.....
}

以后维护起来肯定很困难,有什么好的方法能避免 或者替换掉?

  • 写回答

4条回答 默认 最新

  • haha662 2011-01-23 13:44
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?