设计模式(c++)-结构型模式-适配器模式
设计模式(c)-结构型模式-适配器模式一、适配器模式概述适配器模式是一种结构型设计模式它充当两个不兼容接口之间的桥梁允许原本由于接口不匹配而无法一起工作的类能够协同工作。核心思想是将一个类的接口转换成客户期望的另一个接口。核心原理与角色适配器模式主要涉及一下几个角色目标接口客户期望使用的接口被适配者已经存在的、功能完整但接口不兼容的类或模块。适配器核心组件它实现了目标接口并在内部包装了一个被适配者的实例。当客户调用目标接口的方法时适配器会将其转换成对被适配者相应的方法调用。二、适配器模式UML类图三、代码实现#pragmaonce/* 适配器模式是一种结构型设计模式它将一个类的接口转换成客户期望的另一个接口。 适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。 适配器模式分为类模式和对象模式 */#includeiostreamusingnamespacestd;//目标接口classTarget{public:virtualvoidRequest()0;};//待适配的类classAdaptee{public:voidspecificRequest();};//适配器类classAdapter:publicTarget{private:Adaptee*adaptee_;public:Adapter(Adaptee*adaptee):adaptee_(adaptee){};voidRequest()override;};voidtestAapter();//adapter.cc#includeadapter.hvoidAdaptee::specificRequest(){coutAdaptees specific request.endl;}voidAdapter::Request(){adaptee_-specificRequest();}voidtestAapter(){coutAapter beginendl;Adaptee*adapteenewAdaptee();Adapter*adapternewAdapter(adaptee);adapter-Request();deleteadaptee;deleteadapter;coutAapter endendl;}四、优缺点总结优点提高了类的复用性让原本不兼容的类可以一起工作提高了系统的灵活性和扩展性通过增加新的适配器可以很容易地引起新的被适配者。符合开闭原则客户端通过接口与目标交互增加新适配器无需要修改现有的代码。缺点增加复杂性代码中类数量会增加有时直接修改被适配类可能更简单过度使用会导致系统凌乱如果不是为了解决真正的接口不兼容问题而仅仅是为了让不同的类看起来一致会使得系统结构变复杂