适配器

用于连接两种不同种类的对象,使其毫无问题地协同工作。
类适配器:通过继承来实现两个接口。
对象适配器:不继承被适配者,而是组合了一个对它的引用。

类适配器

Protocol: <A>   Class: B   Class: C   
A可以被认为是抽象类,A的实例充当客户端的角色  
B的实例充当被适配者的角色
C的实例充当适配器

实现: C遵循协议A, 同时继承B, C实现A的方法, 并且在实现的这个方法中调用B的方法([super someRequestInB])

Tip: OC就是这样通过实现协议同时又继承超类来实现多重继承的。

对象适配器

Protocol: <A>   Class: B   Class: C
A可以被认为是抽象类,A的实例充当客户端的角色  
B的实例充当被适配者的角色
C的实例充当适配器

实现: C遵循协议A, 并且拥有一个B类对象当做自己的成员变量, 即保持一个对B类的引用。在实现A的方法中通过自身引用的B的实例去调用B的方法。由于这里C与B是包含关系,用这种方法去适配B的子类也没有什么问题。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容