[英]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.