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