![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 73
befernal
这个作者很懒,什么都没留下…
展开
-
C++设计模式之策略模式
策略模式 定义算法家族,分别封装起来,让它们之间可以互相替换,让算法变化,不会影响到用户GOOD: 适合类中的成员以方法为主,算法经常变动;简化了单元测试(因为每个算法都有自己的类,可以通过自己的接口单独测试。 策略模式和简单工厂基本相同,但简单工厂模式只能解决对象创建问题,对于经常变动的算法应使用策略模式。BUG:客户端要做出判断原创 2015-10-24 21:38:32 · 362 阅读 · 0 评论 -
C++设计模式之原型模式(改编自C++设计模式)
Prototype模式GOOD:从一个对象再创建另外一个可定制的对象,而无需知道任何创建的细节。并能提高创建的性能。 说白了就COPY技术,把一个对象完整的COPY出一份。PIC:CODE:#include#include #include using namespace std;class Prototype //抽象基类 {private:原创 2015-10-26 16:09:06 · 398 阅读 · 0 评论 -
C++设计模式之建造者模式(改编自C++设计模式)
Build模式:Question:生活中有着很多的Builder的例子,个人觉得大学生活就是一个Builder模式的最好体验:要完成大学教育,一般将大学教育过程分成 4 个学期进行,因此没有学习可以看作是构建完整大学教育的一个部分构建过程,每个人经过这 4 年的(4 个阶段)构建过程得到的最后的结果不一样,因为可能在四个阶段的构建中引入了很多的参数(每个人的机会和际遇不原创 2015-10-26 15:41:36 · 328 阅读 · 0 评论 -
C++设计模式之单例模式(改编自C++设计模式)
单例模式通过维护一个 static 的成员变量来记录这个唯一的对象实例。通过提供一个 staitc 的接口 instance 来获得这个唯一的实例。Singleton 不可以被实例化,因此我们将其构造函数声明为 protected 或者直接声明为 private。GOOD:保证一个类仅有一个实例,并提供一个访问它的全局访问点Pic:Code:#include #i原创 2015-10-26 15:05:48 · 295 阅读 · 0 评论 -
C++设计模式之简单工厂模式
简单工厂模式概要: 用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。GOOD: 新添加类时,不会影响以前的系统代码 适用于不同情况创建不同的类BUG: 客户端必须要知道基类和工厂类,耦合性差//baseclass COperation{public: double m_nFirst; double原创 2015-10-23 14:30:33 · 482 阅读 · 0 评论 -
C++设计模式之抽象工厂模式(改编自C++设计模式)
AbstactFactory 模式Question:假设我们要开发一款游戏,当然为了吸引更多的人玩,游戏难度不能太大(让大家都没有信心了,估计游戏也就没有前途了),但是也不能太简单(没有挑战性也不符合玩家的心理)。于是我们就可以采用这样一种处理策略:为游戏设立等级,初级、中级、高级甚至有BT 级。假设也是过关的游戏,每个关卡都有一些怪物(monster)守着,玩家要把这些怪物干掉才可原创 2015-10-26 11:58:30 · 433 阅读 · 0 评论 -
C++设计模式之桥接模式(改编自C++设计模式)
Bridge模式:GOOD:将抽象部分与实现部分分离,使它们可以独立变化。 这里说的意思不是让抽象基类与具体类分离,而是现实系统可能有多角度分类,每一种分类都有可能变化,那么把这种多角度分离出来让它们独立变化,减少它们之间的耦合性,即如果继承不能实现“开放-封闭原则”的话,就应该考虑用桥接模式。PIC:CODE:#include #in原创 2015-10-26 16:37:48 · 451 阅读 · 0 评论 -
C++设计模式之适配器模式(改编自C++设计模式)
Adapter模式::将一个类的接口转化为客户希望的接口.Good:使得原本由于接口不兼容而不能一起工作的那些类能够一起工作. 主要应用于希望复用一些现存的类,但是接口又与复用环境不相容的情况.Pic: Adapter Pattern(类模式)结构图Adapter Pattern(对象模式)结构图Code:#include usin原创 2015-10-27 11:30:20 · 406 阅读 · 0 评论 -
C++设计模式之装饰模式(改编自C++设计模式)
Decorator:动态地给一个对象添加一些额外的职责(不重要的功能,只是偶然一次要执行),就增加功能来说,装饰模式比生成子类更为灵活。建造过程不稳定,按正确的顺序串联起来进行控制。Good:当你向旧的类中添加新代码时,一般是为了添加核心职责或主要行为。而当需要加入的仅仅是一些特定情况下才会执行的特定的功能时(简单点就是不是核心应用的功能),就会增加类的复杂度。装饰原创 2015-10-27 13:47:27 · 368 阅读 · 0 评论