我有类似的方法需要针对不同的概念实施。但是方法的调用应该是有序的。例如,假设我的方法是:
m1,m2,m3,m4。它们将有多个实现。所以,我想在Java界面中收集它们。但由于它们相互依赖,这样做似乎有点奇怪。然后我决定在接口中定义一个按顺序执行其他方法的方法,但这次接口不能反映它的用途。
那么,使用Java接口表示这种有序方法调用及其实现的最佳实践是什么?
提前致谢
答案 0 :(得分:6)
如果流程定义良好,您可以通过定义实现流的抽象类来使用某种strategy pattern,从而允许子类仅定义流方法。例如:
public interface MyInterface {
m1();
m2();
m3();
m4();
flow();
}
public abstract class Strategy implements MyInterface {
public final void flow() {
//implement the flow only
m1();
m2();
m3();
m4();
}
}
通常,策略模式允许子类覆盖flow()方法,但由于您不想这样做,因此将flow方法标记为final。这样,客户端将只担心m1,...,m4实现。