2_1 AdpterMode.cpp 适配器模式
// 定义:将一个类的接口转换成客户端需要的另一个接口,使得原本
// 由于接口不兼容而不能一起工作的那些类可以一起工作
//
// 模式举例:中国电器和电压普遍都是220V,日本则是110V,中国
// 电器拿到日本月需要一个特殊的适配器
//
// 模式特点:该模式有两种写法,类适配器和对象适配器,类适配器
// 是同时继承原生类和适配类,重写原生类的接口,间接
// 调用适配类接口;对象适配器则是继承原生类,内含适配
// 类。推荐使用第二种方式(合成复用原则)
//
//#include<iostream>
using namespace std;class Target
{
public:void request(){cout <<"target ariginal request"<<endl;}
};class Adaptee
{
public:void specialRequest(){cout <<"adapter special request"<<endl;}
};/类适配器
class ClassAdapter : public Target, public Adaptee
{
public://重写request函数void request(){//做一些辅助的运算//然后调用适配器的接口Adaptee::specialRequest();}
};/对象适配器//
class ObjectAdapter : public Target
{
public:ObjectAdapter(Adaptee * adaptee):m_adaptee(adaptee){}void request(){//做一些辅助的运算//然后调用适配器的接口m_adaptee->specialRequest();}private:Adaptee * m_adaptee;
};int main()
{ClassAdapter * pClassAdapter = new ClassAdapter();pClassAdapter->request();ObjectAdapter * pObjectAdapter = new ObjectAdapter(new Adaptee);pObjectAdapter->request();return 0;
}
2_1 AdpterMode.cpp 适配器模式相关推荐
- 设计模式之适配器模式(Adapter)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- 设计模式入门,适配器模式,c++代码实现
// test07.cpp : Defines the entry point for the console application. // #include "stdafx.h" ...
- C++设计模式——适配器模式(对象适配器、类适配器)
http://blog.jobbole.com/109381/?winzoom=1 前言 现在的笔记本都只存在USB接口,用来口,电脑上存在的是USB接口,两者如何通信呢?可以使用USB转串口线连接电 ...
- 设计模式C++实现(3)——适配器模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径.设计模式中运用了面向对象编程语言的重要特性:封装.继承.多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累.最 ...
- 最常用的设计模式---适配器模式(C++实现)
适配器模式属于结构型的设计模式,它是结构型设计模式之首(用的最多的结构型设计模式). 适配器设计模式也并不复杂,适配器它是主要作用是将一个类的接口转换成客户希望的另外一个接口这样使得原本由于接口不兼容 ...
- 设计模式C++实现(6)——适配器模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径.设计模式中运用了面向对象编程语言的重要特性:封装.继承.多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累.最 ...
- C++设计模式-适配器模式
目录 基本概念 代码与实例 基本概念 适配器(Adapter)模式:将一个类的接口转换为客户希望的另一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 当系统的数据 ...
- C++设计模式-Adapter适配器模式
Adapter适配器模式 作用:将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 分为类适配器模式和对象适配器模式. 系统的数据 ...
- [大话设计模式C++版] 第17章 在NBA我需要翻译 —— 适配器模式
源码可以在这里找到 大话设计模式C++版 篮球翻译适配器 //Player.h 球员基类 #include <QString>class Player {protected:QString ...
最新文章
- 谈博客的赢(盈)利模式
- 犹豫了许久,还是写个年总结记录一下吧
- iqueryable怎么进行操作_C# 数据操作系列 - 16 SqlSugar 完结篇(最后的精华)
- 计算机视觉与深度学习 | 目标检测综述(RCNN、RPN、YOLOv1 v2 v3、FPN、Mask RCNN、SSD代码类)
- cbow word2vec 损失_Word2Vec的核心思想
- 2020年中国职业教育行业白皮书
- sublime text 3 3103 注册码
- 开源的“底线”在哪里?
- 【 VS 插件开发 】三、Vs插件简单功能的实现
- 白猫使用OCR文字识别
- 排查线上CPU飙高的原因和解决
- 八爪鱼采集ajax表格,怎么采集八爪鱼采集器单网页表格信息
- job title 总汇
- ThinkPad E14 Slim 使用报告
- 使用gitbook时graceful-fs报错:TypeError: cb.apply is not a function的解决方案
- hazy的leetcode刷题笔记(一)
- Linux蓝牙鼠标自己断开,thinkpad蓝牙鼠标经常断线怎么办 thinkpad蓝牙鼠标频繁断开连接处理方法...
- 电信资费七宗罪,终端的故事
- Java、JSP网上教务评教管理系统(教学评价系统)
- 实现企业微信引流的三大思路
热门文章
- 单例设计模式-反射攻击解决方案及原理分析
- Bootstrap组件_输入框组
- php中滚动显示文字,HTML如何实现文字的滚动效果
- BlockJUnit4ClassRunner
- 不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中制作 JAR 包
- 路径中斜杠/、点斜杠./、点点斜杠../的区别
- JAVA面试题(20)
- nginx+tomcat的keepalive验证、bio/nio连接比较
- 阿里云移动测试平台MQC移动测试沙龙第3期【北京站】
- VMware推出TrustPoint产品,完善终端用户计算方案