6

JavaGuiceFrameworkを使用するJavaMVCプロジェクトの保守を開始しました。

コードのほぼ全体で、最初の開発者は、 別のインターフェイスを拡張する空のモデルインターフェイスをパラメータとして渡しました。

これが最初のインターフェースです:

public interface FooModel extends ModelInterface {

}

そして他のインターフェース:

 public interface ModelInterface {
        public void addListener(FooListener fooListener);
        void setFoo(boolean blop);
        boolean isFoo();
    }

それは私には意味がありません。

Javaで空のインターフェイスを使用する正当な理由/パターンはありますか?多分Guiceのために?

4

3 に答える 3

7

これが「マーカーインターフェース」の良い動機ですこれらは、アスペクト指向プログラミングで特に役立ちます。アスペクト指向プログラミングでは、アタッチするポイントが与えられます(Guiceはまさにそのようなフレームワークだと思います)。

于 2012-05-14T20:32:44.633 に答える
3

空のインターフェイスを使用することを知っている唯一の理由は、マーカーインターフェイスとしてです。java.lang.CloneableやSerializableのような例がいくつかあります。

于 2012-05-14T20:41:09.353 に答える
2

特定の用途のためにクラスをマークするために使用できます。

例:IRequiresSessionState

于 2012-05-14T20:28:32.290 に答える