封装多个方法调用的最佳方法是什么?

时间:2014-12-18 14:46:44

标签: java design-patterns

在Java上进行多个方法调用时是否遵循一些原则?

我了解Facade,但是在单一方法中,而不是服务方法,有时我们需要调用其他单一方法,但是这样做,我会在这个方法中打破这个,然后进行多次调用。例如:

private void doSomethingA(){

} 

private void doSomethingB(){

}   

private void doSomethingC(){

}  

//Am I breaking some rules here? What is the best approach?
private void processSomething(){
   doSomethingA();
   doSomethingB();
   doSomethingC();
}

2 个答案:

答案 0 :(得分:3)

虽然您的语法不正确,但您所做的事情是完全可以接受的。将大型方法拆分为更小,更单一用途,更易读,更可测试的方法,并从另一种方法调用它们是一种很好的做法。

答案 1 :(得分:-1)

如果有大量进程或您经常使用相同的序列,则可以使用enum将处理实现为序列。

public enum Engine {

    A {

                @Override
                void doIt(Object to) {
                    // Do what you need to do.
                }
            },
    B {

                @Override
                void doIt(Object to) {
                    // Do what you need to do.
                }
            },
    C {

                @Override
                void doIt(Object to) {
                    // Do what you need to do.
                }
            };

    abstract void doIt(Object to);

    public void go(Object to) {
        for (Engine e : Engine.values()) {
            e.doIt(to);
        }
    }
}

这可以通过多种方式得到增强(这就是我喜欢它的原因)。您可以在Iterable中对替代执行订单进行编码。您可以在一个位置添加,删除和重新排序流程。枚举的名称可以大大简化。还有更多。