在Java界面中表示工作流

在Java界面中表示工作流,java,function,interface,call,Java,Function,Interface,Call,我有类似的方法,需要为不同的概念实现。但方法的调用应该是有序的。例如,假设我的方法是: m1,m2,m3,m4。它们将有多个实现。所以,我想在Java接口中收集它们。但由于他们相互依赖,这样做似乎有点奇怪。然后我决定在接口中定义一个方法,该方法按顺序执行其他方法,但这次接口没有反映出它的用途 那么,用Java接口及其实现来表示这种有序方法调用的最佳实践是什么 提前感谢如果流定义得很好,您可以通过定义实现流的抽象类来使用一种方法,只允许子类定义流方法。例: public interface MyI

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

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

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


提前感谢

如果流定义得很好,您可以通过定义实现流的抽象类来使用一种方法,只允许子类定义流方法。例:

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

+1另请参阅。