今天看了适配器模式和外观模式,总结如下:
1.适配器和外观:一个是转换接口,一个是简化接口,两者其实没有太大差别
2.就是在两个模块耦合的时候,最好有一个中间模块,假定调用者定义好接口之后,接口不变,被调用者接口可能发生变化,如果有一个适配器作为中间模块,就可以把新接口适配到旧接口上去,使被调用者变化后,调用者不用修改代码,只用修改适配器部分的代码,通过这个来解耦。在两个模块耦合的最初期,就要把适配器设计进去,对被调用者进行进一步的封装,来适应调用者 
3.类适配器和对象适配器:一个用继承,一个用组合。类适配的话,就是这个适配器同时继承被适配者和适配者,被适配者的接口本来就可以使用,减少代码量,比如说只需要适配一个接口,其它的接口就不用管了,如果用对象适配器的话,适配器的所有接口都要重新实现。我比较倾向于对象适配器,这个比较灵活,如果一个接口里面需要多个被适配者提供操作,像你做饭的话,需要锅,也需要炉灶这些,现在人家调用者需要一个cook的接口,你就要用多个适配者组合来实现这个接口,如果用继承的话,就会把不相干的很多东西全部继承到适配器里面去,如果需要用到被适配者的子类的一些方法,也会比较麻烦,多用组合少用继承才是王道。
4.OO原则总结:一个模块耦合的其它模块越少越好,对另一个模块的底层实现了解得越少越好。在两个模块耦合时,增加一个中间模块会增加耦合的灵活性,使接口更干净。
5.我把这两个模式称为煮饭模式了。。。。。。。
下面这两个图是从网上拷贝下来的,不想画了
对象适配器:



 

 

类适配器: