第六天。
对于接口,它本身和其中的方法都默认为public的,它的域默认为public static final的。
在接口这一章里涉及了策略设计模式、适配器设计模式、工厂方法设计模式——
① 创建一个能够根据所传递的参数对象的不同而具有不同行为的方法;
② 设计一个适配器类用于实现一个接口(这个接口本来可能是有具体方法实现的类),这样也便可以由更多的适配器来达到不同的目的,从而“将接口从具体实现中解耦使得接口可以应用于各种不同的具体实现”;
③ 创建一个相关工厂接口或类(与普通接口或类一样),在工厂对象上调用的是创建方法,而该工厂对象将生成接口的某个实现的对象。通过这种方式,我们的代码将完全与接口的实现分离,这就使得我们可以透明地将某个实现替换为另一个实现。
实际上,我们应优先选择类而非接口,使用接口固然可以添加额外级别的间接性,即有利于降低耦合性,但由此会带来额外的复杂性,因此小心使用接口。
此外,内部类使得多重继承的解决方案变得完整。所以说,接口解决了部分问题,而内部类有效地实现了“多重继承”。