码迷,mamicode.com
首页 > 编程语言 > 详细

设计模式--适配器模式C++实现

时间:2016-03-28 13:38:28      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:

适配器模式C++实现

1定义Adapter

将一个类的接口变成客户端所需要的另外一种借口,从而使远不因为接口不匹配而无法合作的两个雷能够一起工作

又叫变压器模式,包装模式Wrapper

2类图

技术分享

角色分析

Target目标角色,期望接口

Adaptee源角色,期望被转换的角色

Adapter适配器角色,核心,将元角色转换为目标角色,通过继承或者类关联的方式

3实现

class Target
{

protected:

  Target();

public:

  virtual void request() = 0;

  virtual ~Target()=0;

};

class ConcreteTarget:public Target

{

public:

  void request()

  {

    cout << "目标角色"<<endl;

  }

};

class Adaptee

{

public:

  void doSomething()

  {

    cout<< "这是需要被转化的角色"<<endl;

  }

};

class Adapter:public Target

{

private:

  Adaptee *_adaptee;

public:

  void request()

  {

    _adaptee->doSomething();

  }

};

4应用

①优点

可以让两个没有任何关系的类一起运行

增加了类的透明性

提高了类的复用性

灵活性非常好

②使用场景

当你有动机的修改一个已经投产中的接口时,适配器模式可以是你最好的选择。eg系统扩展

③注意事项

适配器模式尽量不要用在设计阶段,他不是为了解决正在开发阶段的问题,而是解决正在服役的项目问题

主要用于扩展和更正

5扩展

以上我们说的其实都是类适配器,完成类间合作

而兑现适配器可以通过关联方式完成类间协作

C++中的stack就是如此。将适配器中的目标角色中的操作委托给元角色执行

区别:类适配器是类间继承,对象适配器是对象的合成关系

适配器模式更多的是一个补救模式

设计模式--适配器模式C++实现

标签:

原文地址:http://www.cnblogs.com/lang5230/p/5328565.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!