2011-08-05 8 views
1

私は、異なる概念のために実装する必要がある同様のメソッドを持っています。しかし、その方法の呼び出しは順調でなければならない。たとえば、私の方法は次のとおりです:Javaのインターフェイスでワークフローを表現する

m1、m2、m3、m4。それらの実装は複数あります。だから、私はJavaインタフェースでそれらを収集したいと思っていました。しかし、お互いに依存しているので、そうするのはちょっと変わったようでした。それから、私は、他のものを順番に実行するインタフェース内に単一のメソッドを定義することにしましたが、今回はインタフェースがその目的を反映していません。

Javaインターフェイスとその実装でこのような順序付けられたメソッド呼び出しを表現するベストプラクティスは何ですか?事前

答えて

5

おかげで流れが明確に定義されている場合は、サブクラスのみが流れメソッドを定義することができ、流れを実装する抽象クラスを定義することにより、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

+1 [抽象クラスがインタフェースを実装する場合](http://download.oracle.com/javase/tutorial/java/IandI/abstract.html)も参照してください。 – trashgod

関連する問題