适配器模式
第七个模式:适配器模式与外观模式
7.1问题引入
对于去欧洲旅行的美国旅客,需要注意的是欧洲标准的插座与美国的标准插座是不同的,所以需要引入适配器。同样,OO适配器和真实世界的适配器扮演同样的角色:将一个接口转换成另一个接口,以符合客户的期望。
7.2面向对象适配
让我们来看看使用中的适配器。以第一章中的鸭子为例,鸭子接口和类如下图:
绿头鸭是鸭子的子类:
然后,再看最新的“火鸡”接口:
现在,假设你缺鸭子对象,想用一些火鸡来冒充。显而易见,因为火鸡的接口不同,所以我们需要适配这个接口:
7.3适配器模型解析
下面引入适配器模式
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
7.4新模式
有一种改变接口的新模式,但它改变接口的原因是为了简化接口。这个模式被巧妙地命名为外观模式,之所以这么称呼,是因为它将一个或数个类的复杂的一切都隐藏在背后,至显露出一个干净美好的外观。
现在引入外观模式:
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。