C++ 设计模式

以下是为您整理出来关于【C++ 设计模式】合集内容,如果觉得还不错,请帮忙转发推荐。

【C++ 设计模式】技术教程文章

学习记录:《C++设计模式——李建忠主讲》3.“组件协作”模式【代码】【图】

“组件协作”模式:现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。典型模式:Template Method、Strategy、Observer / Event。 一、模板模式 1.动机 在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因 (比如框架与应用之间的关系)而无法和任务的...

【c++设计模式】桥接模式【代码】

结构型模式 7)桥接模式 桥接模式在适配器模式上做了一定的扩展。 桥接是计算机网络中的用语,本意是指通过网桥把两个局域网连接在一起。 假如同时有A和B两个抽象类,在A中包含了B的指针,那么就好像把A和B两个类结合在了一起,于是叫做桥接模式。 例如葡萄,可以有青葡萄,紫葡萄,而酒可以有低度数酒,高度数酒。把两个类结合在一起,就可以组成各种葡萄酒。 class Grape{ public:Grape():p_color(""),p_area(""){}void setColor...

【c++设计模式】建造者模式【代码】

创建型模式 4)建造者模式 一共涉及到三个类:产品类,建造者类,用户类产品类:非抽象类。就是指某种产品,产品有一些属性待设定 建造者类:需要构造抽象类,来扩展出各种各样的建造者类,每一种产品对应着一种建造者类。并且建造类能够直接生产产品类(能够 new product()) 用户类:非抽象类。用户调用不同的建造者类去建造,并且得到相应的产品。用户类和产品类没有直接的关系。优点:将一个复杂对象的构造和它的表示分离。这样...

C++设计模式【图】

(一)简单工厂模式 2 (二)策略模式 4 策略与工厂结合 6 单一职责原则 6 开放――封闭原则 6 里氏代换原则 7 依赖倒转原则 7 (三)装饰模式 7 (四)代理模式 9 (五)工厂方法模式 11 (六)原型模式 13 (七)模板方法模式 15 迪米特法则 16 (八)外观模式 16 (九)建造者模式(生成器模式) 19 (十)观察者模式 23 (十一)抽象工厂模式 28 (十二)状态模式 32 (...

c++设计模式-抽象工厂【图】

动机 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合? 模式定义 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。 ——《设计模式》GoF 结构示例 设定一个数据库的访问模块 cl...

C++设计模式之策略模式(strategy)(行为型)【图】

一 定义 策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异。 策略模式把对象本身和运算规则区分开来,其功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性的思想。 二 ULM图 环境类(Context):用一个ConcreteStrategy对象来配置。维护一个对Strategy对象...

C++设计模式——适配器模式【图】

生活中的适配器 买笔记本电脑,买手机时,都有一个电源适配器,电源适配器又叫外置电源,是小型便携式电子设备及电子电器的供电电压变换设备,常见于手机,笔记本电脑上。它的作用是将家里的220V高电压转换成这些电子产品能工作的5V~20V左右稳定的低电压,使它们能正常工作。就是说,如果没有这个电源适配器,我们的手机和电脑就不能进行充电了。 之前同事去日本出差,由于工作需要,就将自己的笔记本带过去了。到了的当晚就悲剧了...

C++设计模式——简单工厂模式【图】

问题描述 之前在公司做了一个windows 8平台的阅读器。首先,需要将电子书中的内容渲染到屏幕上,而电子书每一页都包含各种各样的内容,比如:图形、图像和文字等等;不同的内容,就是不同的对象;在将不同的内容渲染到屏幕上之前,就需要new操作,建立不同的对象,然后再在屏幕上进行描绘。这个时候,就需要进行很多new操作,new操作分布在代码的不同地方,管理起来很麻烦,而且也很乱,到后期扩展和维护的时候,有的时候,对象多的...

C++设计模式——工厂方法模式【图】

问题描述 之前讲到了C++设计模式——简单工厂模式,由于简单工厂模式的局限性,比如:工厂现在能生产ProductA、ProductB和ProductC三种产品了,此时,需要增加生产ProductD产品;那么,首先是不是需要在产品枚举类型中添加新的产品类型标识,然后,修改Factory类中的switch结构代码。是的,这种对代码的修改,对原有代码的改动量较大,易产生编码上的错误(虽然很简单,如果工程大了,出错也是在所难免的!!!)。这种对代码的修改...

C++设计模式——抽象工厂模式【图】

问题描述 之前讲到了C++设计模式——工厂方法模式,我们可能会想到,后期产品会越来越多了,建立的工厂也会越来越多,工厂进行了增长,工厂变的凌乱而难于管理;由于工厂方法模式创建的对象都是继承于Product的,所以工厂方法模式中,每个工厂只能创建单一种类的产品,当需要生产一种全新的产品(不继承自Product)时,发现工厂方法是心有余而力不足。 举个例子来说:一个显示器电路板厂商,旗下的显示器电路板种类有非液晶的和液晶...