- 浏览: 373636 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
头文件
//AdapterPattern.h #ifndef ADAPTER_PATTERN_H #define ADAPTER_PATTERN_H #include <Windows.h> namespace AdapterPattern { class Adaptee { public: Adaptee(); ~Adaptee(); void SpecificRequest(); }; // Base Class ////////////////////////////////////////////////////////////////////////// class Adapter { public: Adapter(); virtual ~Adapter(); virtual void Request() = 0; }; class ConcreteAdapterA : public Adapter { public: ConcreteAdapterA(); virtual ~ConcreteAdapterA(); virtual void Request(); private: Adaptee* m_pAdaptee; }; class ConcreteAdapterB : public Adapter, Adaptee { public: ConcreteAdapterB(); virtual ~ConcreteAdapterB(); virtual void Request(); }; ////////////////////////////////////////////////////////////////////////// void AdapterPattern_Test_Object(); void AdapterPattern_Test_Class(); } #endif
实现
#include "AdapterPattern.h" #include <iostream> using namespace std; namespace AdapterPattern { ////////////////////////////////////////////////////////////////////////// Adaptee::Adaptee() { } Adaptee::~Adaptee() { } void Adaptee::SpecificRequest() { cout << "Adaptee::SpecificRequest()\n" ; } ////////////////////////////////////////////////////////////////////////// Adapter::Adapter() { } Adapter::~Adapter() { } ////////////////////////////////////////////////////////////////////////// ConcreteAdapterA::ConcreteAdapterA() : m_pAdaptee(new Adaptee) { } ConcreteAdapterA::~ConcreteAdapterA() { if (m_pAdaptee != NULL) { delete m_pAdaptee; m_pAdaptee = NULL; } } void ConcreteAdapterA::Request() { m_pAdaptee->SpecificRequest(); cout << "ConcreteAdapterA::Request()\n" ; } ////////////////////////////////////////////////////////////////////////// ConcreteAdapterB::ConcreteAdapterB() { } ConcreteAdapterB::~ConcreteAdapterB() { } void ConcreteAdapterB::Request() { Adaptee::SpecificRequest(); cout << "ConcreteAdapterB::Request()\n" ; } ////////////////////////////////////////////////////////////////////////// void AdapterPattern_Test_Object() { ConcreteAdapterA* pAdapter = new ConcreteAdapterA(); pAdapter->Request(); delete pAdapter; pAdapter = NULL; } void AdapterPattern_Test_Class() { ConcreteAdapterB* pAdapter = new ConcreteAdapterB(); pAdapter->Request(); delete pAdapter; pAdapter = NULL; } }
客户端
#include "AdapterPattern.h" #include <iostream> using namespace AdapterPattern; void main() { AdapterPattern_Test_Object(); AdapterPattern_Test_Class(); }
运行结果
- AdapterPattern.zip (972 Bytes)
- 下载次数: 0
- Diagram.zip (317 KB)
- 下载次数: 0
- Diagram-raw.zip (587.6 KB)
- 下载次数: 0
发表评论
-
FreeRTOS
2022-03-05 16:31 253Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 417https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1346https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 481https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 580// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 593https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5828583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 609参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2177基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9161 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1596OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1886ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 879转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1928转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1095C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 974转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 1006转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 821参考链接 http://blog.csdn.net/weiwe ... -
C++ 鼠标模拟程序
2016-09-04 12:09 1623转自 http://blog.csdn.net/weixinh ...
相关推荐
除了适配器模式,还有其他结构型模式,如桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。这些模式各自关注点不同,但都致力于提高代码的结构和可维护性。 桥接模式将抽象部分和实现部分解耦,使它们...
适配器模式是软件设计中的一种常用模式,属于结构型模式。其核心目的是解决两个已有接口之间不兼容的问题,使它们能够协同工作。适配器模式可以看作是软件开发中的“桥梁”或“转换器”,在不修改原有接口的基础上,...
适配器模式是一种在软件工程中广泛使用的结构型设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式扮演着重要的角色,尤其在处理遗留代码或者第三方库集成时,能够有效地解决接口不匹配的问题。...
适配器模式是结构型模式的一种,其核心思想是将一个类的接口转换为客户期望的另一个接口。在软件开发中,经常会遇到现有类的接口不符合需求的情况,尽管该类的功能满足了客户类的需求。此时,适配器模式便扮演起...
结构型模式不仅限于适配器模式和桥接模式,还包括代理模式、装饰模式、外观模式、组合模式和享元模式等。这些模式都致力于优化系统结构,提升代码的可复用性和可维护性。 4. **学习与实践**: 对于初学者来说,理解...
适配器模式是一种结构型设计模式,它的主要作用是在不修改原有类的情况下,使两个接口不兼容的类能够协同工作。在Java中,适配器模式有两种形式:类适配器和对象适配器。类适配器模式通过继承目标接口和适配者类来...
适配器模式是一种结构型设计模式,它的主要目的是使不兼容的接口能够协同工作。在实际开发中,我们可能会遇到这样的情况:一个类库或者服务提供了一个接口,而我们的代码需要使用另一个接口。适配器模式就充当了两者...
设计模式分为三大类:创建型模式、结构型模式和行为型模式。 **创建型模式**关注的是对象的创建。共有五种创建型模式: 1. **工厂方法模式**:它定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法...
适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,当系统中存在一个已经存在...通过案例分析和实际代码示例,书中的讲解会让你对适配器模式有深入的理解,并能熟练运用到实际开发中。
适配器模式是一种结构型设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式常用于解决旧代码与新代码之间的兼容性问题,或者是将第三方库的API转换为更适合我们项目需求的形式。适配器模式的核心...
适配器模式是一种在软件工程中广泛使用的结构型设计模式,它的主要目的是为了让不兼容的接口之间能够进行通信。在.NET开发中,适配器模式扮演着重要角色,尤其是在处理不同系统、库或组件间的集成时。这个".Net设计...
适配器模式是一种结构型设计模式,它允许两个不兼容的接口能够协同工作。本文将深入探讨适配器模式的原理、分类以及在Java中的实现方式。 #### 适配器模式的基本原理 适配器模式的核心在于创建一个新的类(适配器...
**定义**:适配器模式(Adapter Pattern)是一种结构型设计模式,允许不兼容的接口协同工作。该模式涉及到一个包含现有类的接口转换到客户端希望使用的另一个接口的对象。适配器模式使得原本由于接口不兼容而不能一起...
在给定的压缩包文件中,我们关注的是结构型设计模式,这些模式主要用于处理类和对象的组合与结构,以实现更灵活、可扩展的设计。下面我们将详细探讨其中涉及到的几个模式:桥接模式、适配器模式、装饰者模式和组合...
适配器模式和外观模式是两种非常重要的设计模式,它们在实际项目中有着广泛的应用。本资源提供了一个关于这两种模式的实战示例,帮助我们更好地理解和应用它们。 适配器模式(Adapter Pattern)的主要目的是将两个...
结构型模式可以分为七种:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。这些模式在不同的场景下有着各自的用途,它们可以帮助我们构建出灵活、可扩展的系统。 适配器模式允许两个不...