C语言和设计模式(适配器模式)
来源:互联网 发布:开淘宝网店的费用 编辑:程序博客网 时间:2024/06/08 00:47
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
现在的生活当中,我们离不开各种电子工具。什么笔记本电脑、手机、mp4啊,都离不开充电。既然是充电,那么就需要用到充电器。其实从根本上来说,充电器就是一个个普通的适配器。什么叫适配器呢,就是把220v、50hz的交流电压编程5~12v的直流电压。充电器就干了这么一件事情。
那么,这样的一个充电适配器,我们应该怎么用c++描述呢?
class voltage_12v{public: voltage_12v() {} virtual ~voltage_12v() {} virtual void request() {}};class v220_to_v12{public: v220_to_v12() {} ~v220_to_v12() {} void voltage_transform_process() {}};class adapter: public voltage_12v{ v220_to_v12* pAdaptee;public: adapter() {} ~adapter() {} void request() { pAdaptee->voltage_transform_process(); } };
通过上面的代码,我们其实可以这样理解。类voltage_12v表示我们的最终目的就是为了获得一个12v的直流电压。当然获得12v可以有很多的方法,利用适配器转换仅仅是其中的一个方法。adapter表示适配器,它自己不能实现220v到12v的转换工作,所以需要调用类v220_to_v12的转换函数。所以,我们利用adapter获得12v的过程,其实就是调用v220_to_v12函数的过程。
不过,既然我们的主题是用c语言来编写适配器模式,那么我们就要实现最初的目标。这其实也不难,关键一步就是定义一个Adapter的数据结构。然后把所有的Adapter工作都由Adaptee来做,就是这么简单。不知我说明白了没有?
typdef struct _Adaptee{ void (*real_process)(struct _Adaptee* pAdaptee);}Adaptee;typedef struct _Adapter{ void* pAdaptee; void (*transform_process)(struct _Adapter* pAdapter);}Adapter;
- C语言和设计模式(适配器模式)
- C语言和设计模式(适配器模式)
- C语言和设计模式(适配器模式)
- 12.C语言和设计模式(适配器模式)
- 15、C语言和设计模式(适配器模式)
- C语言和设计模式(适配器模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式
- C语言和设计模式
- C语言和设计模式
- 设计模式--适配器模式和外观模式
- 适配器模式C语言实现
- 设计模式十(适配器模式,python语言实现)
- 设计模式-适配器模式(Go语言描述)
- 设计模式-适配器模式(Go语言描述)
- C语言和设计模式(之单件模式)
- C语言和设计模式(之原型模式)
- C语言和设计模式(之组合模式)
- C语言和设计模式(之模板模式)
- android
- Android-sharedUserId数据权限
- IIS发布多个WEB网站应用程序
- 电话费多少速度
- 丰东股份
- C语言和设计模式(适配器模式)
- Table of Language Culture Names, Codes, and ISO Values Method [C++]
- 分两块地反对股份大概
- 格林威治时间转换成北京时间
- 地方是开机看华东师范就就卡
- Android promotion
- 闪电黄蜂的
- no bug, no job
- 开源的许可证GPL、LGPL、BSD、Apache 2.0的通俗解释