用Java表示接口中的工作流

sua*_*uat 2 java interface function call

我有类似的方法需要针对不同的概念实现.但是方法的调用应该是有序的.例如,假设我的方法是:

m1,m2,m3,m4.它们将有多个实现.所以,我想在Java界面中收集它们.但由于它们相互依赖,这样做似乎有点奇怪.然后我决定在接口中定义一个按顺序执行其他方法的方法,但这次接口不能反映其用途.

那么,使用Java接口表示这种有序方法调用及其实现的最佳实践是什么?

提前致谢

Ale*_*ean 6

如果流程定义良好,您可以通过定义实现流的抽象类来使用一种策略模式,从而允许子类仅定义流方法.例如:

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();
  }
}
Run Code Online (Sandbox Code Playgroud)

通常,策略模式允许子类覆盖flow()方法,但由于您不想这样做,因此将flow方法标记为final.这样,客户端将只担心m1,...,m4实现.