![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
23种设计模式
nidongma98
这个作者很懒,什么都没留下…
展开
-
一、简单工厂模式
(1)主要用于创建对象。新添加类时,不会影响以前的的系统代码。 核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类的实例。 (2)模式结构 工厂(Factory):整个模式的核心,负责实现创建所有实例的内部...原创 2018-09-06 21:33:38 · 89 阅读 · 0 评论 -
三、装饰模式
1、装饰模式定义 装饰模式允许向一个现有的对象添加新的功能,同时又不改变其结构,这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 2、装饰模式就是把要添加的附加功能分别放到单独的类中,并让这个类包含它要装饰的对象。当需要执行时,客户端就可以有选择地、按顺序的使用装饰功能包装对象。...原创 2018-09-09 23:38:00 · 74 阅读 · 0 评论 -
二、策略模式
1、策略模式和简单工厂基本相同,但简单工厂模式只能解决对象创建问题,对于经常变动的算法应使用策略模式。 2、例子 //基类 class COperation { public: int m_nFirst; int m_nSecond; virtual dou...原创 2018-09-06 22:28:07 · 75 阅读 · 0 评论 -
五、工厂方法模式
1、工厂方法模式修正了简单工厂模式中不遵守开发-封闭原则。工厂方法模式把选择判断移到了客户端去实现,如果想添加新功能就不用修改原来的类,直接修改客户端即可。 2、例子: #include <string> #include <iostream> using namespace std; //实例基类 class LeiFeng { public: virtual ...原创 2018-09-12 23:41:15 · 85 阅读 · 0 评论 -
四、代理模式
1、代理模式定义: 为其他对象提供一种代理以控制对这个对象的访问,在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 2、模式结构: 一个是真正的你要访问的对象(目标类), 一个是代理对象,真正对象与代理对象实现同一个接口,先访问代理类再访问真正要访问的对象。 3、介绍 (1)意图:为其他对象提供一种代理以...原创 2018-09-10 23:30:05 · 92 阅读 · 0 评论