Java中的case语句

这个问题在这里已经有了答案:

  • 将许多'if else'语句转换为更清晰的方法7个答案

  • 其中一个解决方案是使用多态性以不同的方式处理触发器。 例如,你可以声明Trigger接口并有几个实现。 在这种情况下,当您需要新的触发器类型时,您只需实现此界面并且不要触摸现有的代码:

    public interface Trigger {
        TriggerResultInterface execute(TriggerEventHelper eventHelper);
    }
    
    public class MetaTrigger implements Trigger {
        @Override
        TriggerResultInterface execute(TriggerEventHelper eventHelper) {
            // do meta trigger work here
        }
    }
    
    public class DataTrigger implements Trigger {
        @Override
        TriggerResultInterface execute(TriggerEventHelper eventHelper) {
            // do data trigger work here
        }
    }
    
    // ...
    
    public TriggerResultInterface executeTriggerJob(TriggerEventHelper eventHelper) {
        eventHelper.getTrigger().execute(eventHelper);
    }
    

    在这种情况下,将不可能添加新的触发器类型并且不执行其行为。

    如果您需要默认实现,则可以使用基类而不是接口(在Java 8中,您可以向接口添加默认实现权限)。

    链接地址: http://www.djcxy.com/p/35727.html

    上一篇: case statements in Java

    下一篇: Why doesn't QtConsole echo next()?