设计模式[12]-Adapter

Type: Structural

Adapter: 将一个类的接口转换成clients期望的另一个接口。类不会因为接口不兼容而无法一起工作。 实现方式有两种,继承和委让。这里使用的是委让。

#include <iostream>
using namespace std;  

class Adapter
{
public:
    virtual void operation()=0;
};  

class Adaptee
{
public:
    void adaptedOperation()
    {
        cout<<"adaptedOperation"<<endl;
    };
};  

class ConcreteAdapter: public Adapter
{
public:
    ConcreteAdapter(Adaptee* pAdaptee):m_pAdaptee(pAdaptee){};
    void operation()
    {
        cout<<"ConcreteAdapter operation"<<endl;
        m_pAdaptee->adaptedOperation();
    };
private:
    Adaptee* m_pAdaptee;
};  

int main()
{
    Adaptee *pAdaptee = new Adaptee;
    Adapter *pTarget = new ConcreteAdapter(pAdaptee);
    pTarget->operation();  

    system("pause");  

    return 0;
}
时间: 2024-09-12 16:25:43

设计模式[12]-Adapter的相关文章

解读设计模式----适配器模式(Adapter Pattern)

在金庸笔下,三大神功都是难得之宝,多少人为得到他而......,仔细的分析下这三大神功,还是北冥较好,呵呵.我们从软件设计的角度来看,这不知算不算得上是一种复用(功力复用)的思想,只不过有点残忍罢.而在软件设计领域里,"复用"在某些时候也会出现很多问题,比如平台不兼容,开发语言不同或是接口不同等多种原因,弄得不好会不会出现既浪费了别人的现有资源,而自己的系统又无法完成呢?这有点像吸星----损人又损己. 企图将设计做好,就能够一劳永逸地坐享其成,这样的愿望就好上面所提到的吸星神功一般,

C#设计模式(12)——享元模式(Flyweight Pattern)

原文:C#设计模式(12)--享元模式(Flyweight Pattern) 一.引言 在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的. 二.享元模式的详细介绍 在前面说了,享元模式可以解决上面的问题了,在介绍享元模式之前,让我们先要分析下如果去解决上面那个问题,上面的问题就

C#设计模式之适配器设计模式(Adapter)

结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构.结构模式描述两种不同的东西:类与类的实例.根据这一点,结构模式可以分为类的结构模式和对象的结构模式. 后续内容将包括以下结构模式: 适配器模式(Adapter):Match interfaces of different classes 合成模式(Composite):A tree structure of simple and composite objects 装饰模式(Decorator):Add

Adapter适配器模式在JavaScript设计模式编程中的运用分析_基础知识

定义适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作.速成包装器(wrapper). 适配器的别名是包装器(wrapper),这是一个相对简单的模式.在程序开发中有许多这样的场景:当我们试图调用模块或者对象的某个接口时,却发现这个接口的格式并不符合目前的需求.这时候有两种解决办法,第一种是修改原来的接口实现,但如果原来的模块很复杂,或者我们拿到的模块是一段别人编

关于java问题-java编程思想的23种设计模式有哪些

问题描述 java编程思想的23种设计模式有哪些 例如,单例设计模式其它就不知道了?可以的话在给个例子描述一下 解决方案 根据caozhy的提示,再整理一下 1. Memento(备忘录) 2. Chain of Responsibility(责任链) 3. Observer(观察者 4. Command(命令模式) 5. State(状态模式) 6. Interpreter(解释器 7. Strategy(策略模式) 8. Iterator(迭代子 9. Template Method(模板方

设计模式(Patterns in Java)

设计 板桥里人的设计模式讲解是国内媒体(包括书籍和网站)中最早的成体系介绍,本系列介绍纯为免费传播(转载本站文章,请保留作者和网址),尽量做到言简意赅,通俗易懂,但是难免有所疏漏敬请来信或论坛讨论,不断完善. 真正掌握设计模式需要在实践中不断研究和使用,关于设计模式在具体实例的应用,可以阅读板桥里人的书籍<Java实用系统开发指南>.书籍中8个实例都从设计模式.框架等高度对系统进行崭新的设计和实现,这种应用理念正是现在以及将来软件设计和编程的根本之道. 1:前言 学习GoF设计模式的重要性 建

Java设计模式学习心得

整个设计模式贯穿一个原理:面对介面编程,而不是面对实现,(面向物件编程应该改爲面向介面编程).目标原则是:降低耦合,增强灵活性. 一.创建模式 1.设计模式之Factory(工厂方法和抽象工厂) 使用工厂模式就象使用new一样频繁. 2.设计模式之Prototype(原型) 用原型实例指定创建物件的种类,並且通过拷贝这些原型创建新的物件. 3.设计模式之Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件複杂的工作,Builder模式就是将这两种情况分开进行

设计模式大全

转自:http://blog.csdn.net/longronglin/article/details/1454315 Longronglin之设计模式: Christopher Alexander 说过:"每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复劳动". 模式描述为:在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境. 阅读类图和对象图请先学习UML 创建模式 结构模式 行为模式

036_《Inside 深入核心VCL架构剖析》

<Inside 深入核心VCL架构剖析> Delphi 教程 系列书籍 (036) <Inside 深入核心VCL架构剖析> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3 Part4 Part5 附书源码 作者: 李维 丛书名: 李维作品系列 出版社:电子工业出版社 ISBN:7505394894 上架时间:2003-12-30 出版日期:2003 年12月 开本:16开 页码:706 版次:1-1 内容简介 本书包括