6

我刚刚开始维护一个使用 Java Guice 框架的 Java MVC 项目。

在几乎整个代码中,首先开发人员将一个空模型接口作为参数传递给 另一个接口。

这是第一个界面:

public interface FooModel extends ModelInterface {

}

另一个界面:

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

这对我来说没有任何意义。

在 Java 中是否有充分的理由/模式使用空接口?也许是为了吉斯?

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 回答