软件设计模式: 适配器模式
适配器模式(Adapter)将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
在软件开发中,也就是系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况,比如在需要对早期代码复用一些功能等应用上很有实际价值。
我经常将适配器和电源适配器进行类比,我国的电压是 220V,日本是 110V,我们的设备在那边使用便需要一个电源适配器进行适配。
适配器模式,别名包装器(Wrapper),属于结构模型,存在三种角色
Target
,即目标抽象类,当前业务系统期待的抽象接口Adaptee
,即适配者类,当前业务系统已经存在的实现接口,是待被适配的对象。Adapter
,即适配器类,它是一个转换器,通过继承或引用适配者的对象,把适配者对外的接口转换成目标抽象类接口,从而实现客户端可以通过统一的目标抽象类接口来访问适配者类。
在实现时,可以采用类适配器和对象适配器两种,前者采用继承方式实现,后者采用组合的方式。前者对耦合度比较高,一般不采用。
结构与实现
类适配器的 UML 图
复制代码
对象适配器 UML 图
复制代码
源代码实现
参考资料
《大话设计模式》
版权声明: 本文为 InfoQ 作者【正向成长】的原创文章。
原文链接:【http://xie.infoq.cn/article/ed01cb8b423c946cc0126a910】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论