1
我有类似的方法需要针对不同的概念实施。但方法的调用应该是有序的。例如,假设我的方法是:在Java界面中表示工作流程
m1,m2,m3,m4。他们会有不止一种实现。所以,我想收集他们在Java界面。但是当他们互相依赖时,这样做似乎有点奇怪。然后我决定在接口中定义一个单一的方法,以便顺序执行其他方法,但是这次界面并没有反映它的用途。
那么,用Java接口来表示这种有序方法调用的最佳实践和实现是什么?
在此先感谢
我有类似的方法需要针对不同的概念实施。但方法的调用应该是有序的。例如,假设我的方法是:在Java界面中表示工作流程
m1,m2,m3,m4。他们会有不止一种实现。所以,我想收集他们在Java界面。但是当他们互相依赖时,这样做似乎有点奇怪。然后我决定在接口中定义一个单一的方法,以便顺序执行其他方法,但是这次界面并没有反映它的用途。
那么,用Java接口来表示这种有序方法调用的最佳实践和实现是什么?
在此先感谢
如果流量被很好地定义,你可以通过定义一个实现了流动,使子类只定义流量方法的抽象类中使用一种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();
}
}
通常情况下,策略模式将允许子类覆盖流量()方法,但因为你不想做,你标记流方法决赛。这样,客户只会担心m1,...,m4的实现。
+1另请参见[当抽象类实现接口时](http://download.oracle.com/javase/tutorial/java/IandI/abstract.html)。 – trashgod