[Thinking in JAVA] 接口的水也不浅

1.接口是public的,即使不声明,也默认是public。接口中的方法也必须是public。


2.在无法修改想要使用的类时,可以使用适配器模式。适配器接受你所拥有的接口,并产生你所需要的接口。

   Thinking in JAVA P177的例子。

   有两个类,Processor和Apply, Apply中用到Processor对象。现在有一个类Filter,有跟Processor一样的方法,但是因为Apply和Processor的耦合太强了,所以Filter类不能直接复用Apply中的代码。这时候可以创建一个类FilterAdapter让他继承Processor,同时这个类中聚合一个Filter对象,用Filter对象去完成processor的方法实现。这样Apply中就可以使用FilterAdapter,从而达到使用Filter的效果。这个例子同时也是代理模式。


3.使用接口的核心原因是可以向上转型为多个基类,第二个原因是防止客户端程序员创建该类的对象,确保这仅仅是一个接口。

   如果要创建不带任何方法定义和成员变量的基类,那么就应该选择接口而不是抽象类。如果知道某事物应该成为一个基类,那么第一选择应该是使它成为一个接口。


   另外,使用接口而不是类的强大之处是:

  我们可以在任何现有类上添加新的接口,所以这意味着让方法接受接口类型,是一种让任何类都可以对该方法进行适配的方法。


4.接口可以继承多个接口。。就像。。
interface aa<T> extends Collection<T>,Serializable{}

其中不需要添加collection的方法。


5.接口中定义的域是public,static 和 final的。


6.嵌套接口:

   接口可以嵌套在类或其他接口中。

   在类中定义的接口可以是private的,在接口中定义的接口必须是public。

   当实现某个接口时,并不需要实现嵌套在其内部的任何接口。而且private接口不能再定义它的类之外被实现。


7.工厂方法模式

  一个接口,一个产生接口的工厂的接口。 配上各种实现。


你可能感兴趣的:([Thinking in JAVA] 接口的水也不浅)