因为现实中到处都有适配器。比方说: 如果你需要在欧洲国家使用美国制造的笔记本电脑,你可能需要使用个交流电的适配器,适配器的作用:它位于美式插头和欧式插座的中间,它的工作是将欧式插座转换成美式插座,好让美式插头可以插进这个插座得到电力。或者也可以这么认为:适配器改变了插座的接口,以符合美式笔记本电脑的需求。
好了,这是真实世界的适配器,那面向对象适配器又是什么?其实,OO适配器和真实世界的适配器扮演着同样的角色:将一个接口转换成另一个接口,以符合客户的期望。
正如图所示,在现有系统和厂商类之间加入一层适配器,可以在不修改原有类的基础上,实现功能。
客户使间适配器的过程如下:
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
封装子系统的类,提供一个比较简单的接口,简化了接口,也将客户从组件的子系统中解耦,外观和适配器可以包装很多类,但是外观的意图是简化接口,而适配器的意图是将接口转换成不同的接口。
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用。
最少知识( Least Knowledge)原则告诉我们要减少对象之间的交互,只留下几个“密友”。这个原则通常是这么说的:
最少知识原则:只和你的密友谈话
就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:
装饰者:不改变接口,但加入责任
适配器:将一个接口转成另一个接口
外观:让接口更简单
《HeadFirst设计模式》第七章适配器模式与外观模式-读书笔记
原文:https://www.cnblogs.com/rain1024/p/11783439.html