我刚刚开始维护一个使用Java Guice Framework的Java MVC项目。
在几乎整个代码中,第一个开发人员作为参数传递了一个空模型接口扩展另一个接口。
这是第一个界面:
public interface FooModel extends ModelInterface {
}
另一个界面:
public interface ModelInterface {
public void addListener(FooListener fooListener);
void setFoo(boolean blop);
boolean isFoo();
}
这对我没有任何意义。
在Java中是否有一个很好的理由/模式使用空接口?也许对于Guice来说?
答案 0 :(得分:7)
Here是“标记接口”的良好动机。它们在面向方面的编程中特别有用,它们给你一个附加点(我猜Guice就是这样一个框架)。
答案 1 :(得分:3)
我知道使用空接口的唯一原因是作为标记接口。有一些例子,如java.lang.Cloneable或Serializable。
答案 2 :(得分:2)
它可用于标记特定用途的类。