适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作[1]。[DP]
我们很容易在编程的时候想到使用这种方法,但是不会提到“适配器模式”。我们可能会说得比较麻烦:写一个新的类,继承旧的类,然后使用旧类的接口完成功能,将新类的接口定义成与现实环境一致的样子……
可以这么理解以帮助记忆、加深印象:
使用此模式的意义:复用。使控制范围之外的一个原有对象与某个接口匹配。当现有接口与现实环境要求不一致的时候使用。
实际应用场合:1,复用早期版本的代码;2,设计系统时考虑使用第三方组件。
举例:一个外籍中锋到NBA需要翻译者类来“适配”——解释教练的指令:Attack或Defense。
[1] 读懂这句话相当直白,使用也不难,但是我在昨天和同学讨论它的时候,却无法将这种“功能”和“适配”这个名称对应起来。在FishGUI项目中,最开始接触的就是Adapter,它提供了基于OS的接口:使得我们能够通过FG_OSAdapter这个类提供的接口,而实际调用FG_Win32Adaptor类的相关函数。
对“适配”含义的理解:使之合适、匹配(原本存在不合适的情况下)。在编程中,最容易不一致、而给复用带来障碍的地方就是接口了。
责任编辑:小草