繁体   English   中英

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

[英]What is the best approach to encapsulate multiple method calls?

在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();
}

尽管您的语法不正确,但您所做的工作完全可以接受。 将大型方法拆分为较小的,目的更明确的,更具可读性的,可测试的方法,并从另一种方法调用它们是一种好习惯。

如果存在大量进程,或者您使用相同的序列,那么通常可以使用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编码执行的替代顺序。 您可以仅在一个地方添加,删除和重新排序流程。 枚举的名称可以大大简化。 还有很多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM