用Java表示接口中的工作流

时间:2011-08-05 07:04:27

标签: java function interface call

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

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

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

提前致谢

1 个答案:

答案 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实现。