设计模式
晚霞残影邀明月
脚本丈量走过的路,测量未走的人生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式-原型模式
运用场景: 需要实现将一个类复制给另一个类,并利用其功能; 代码实现: #include<iostream> using namespace std; class Prototype { public: virtual Prototype* clone() = 0; }; class ConcreteClass :public Prototype { public: virt...原创 2019-01-11 10:51:13 · 113 阅读 · 0 评论 -
设计模式-策略模式
应用场景: 将一系列算法封装起来,当算法发生变化时,通过更改算法接口实现更换算法; 代码实现: #include<iostream> using namespace std; class Operator { public: double dLeftOperator; double dRightOperator; virtual double GetResult() = 0; ...原创 2019-01-09 16:14:33 · 126 阅读 · 0 评论 -
设计模式-模板方法
应用场景: 将一系列固定的接口封装在一个函数中,通过具体的类实现相应的接口。 代码实现: #include<iostream> using namespace std; class AbTemplate { public: virtual void Work() = 0; virtual void Eat() = 0; public: void ImpFun() { Wo...原创 2019-01-09 11:10:23 · 157 阅读 · 0 评论 -
设计模式-观察者模式
角色 subject(被观察者) 被观察的对象。当被观察对象的状态发生变化时,需要通知队列中所有观察者对象。 ConcreteSubjec 被观察者的具体实现。包含一些基本的属性以及操作。 Observer(观察者) 接口或抽象类。当subject的状态发生变化时,Observer对象通过一个callback函数得到通知。 ConcreteObserver 观察者的实现。 应用场景 侦听事件驱动程...原创 2019-01-08 21:18:57 · 231 阅读 · 0 评论 -
设计模式-代理模式
代理模式通过包含一个派生类的方法并且添加自己的方法。 代码实现: #include<iostream> using namespace std; class Base { public: virtual void DoingSomething() = 0; }; class NewPeople :public Base { public: void DoingSomethin...原创 2019-01-07 22:07:57 · 132 阅读 · 0 评论 -
设计模式-抽象模式
抽象工厂模式相较于工厂模式可以进行一系列接口的实现;但使用的接口被固定,无法在不修改原来的代码的情况下增加接口; 代码实现: #include<iostream> using namespace std; class Fruit { public: virtual void GetFruit() = 0; }; class NorthApple:public Fruit { pub...原创 2019-01-06 18:03:53 · 282 阅读 · 0 评论 -
设计模式简介
每一个模式描述一个在我们周围不断重复发生的问题以及该问题的解决方案的核心。 设计模式有4个基本要素: 模式名称 一个助记名,用来描述模式的问题、解决方案和效果。 问题 应该在何时使用模式,解释设计问题和问题存在的前因后果,描述特定的设计问题,怎样用对象表示算法。 解决方案 描述设计的组成部分,他们之间的相互关系以及各自的职责和协作方式。 效果 描述模式应用的效果以及使用模式应权衡的问题。 根据设计...原创 2019-01-06 17:14:41 · 265 阅读 · 0 评论 -
设计模式-工厂模式
工厂模式通常又可以分为简单工厂模式、工厂模式、抽象工厂模式;他们有一个共同的类并从它继承而来。 工厂的实现: 工厂(creater)角色 所有的内部逻辑可以被外部对象调用; 抽象(Product)角色 所有具体产品的公共接口; 具体产品(Concrete Product) 具体实例对象; 代码实现: #include&amp;lt;iostream&amp;gt; using namespace std; c...原创 2019-01-06 13:25:03 · 131 阅读 · 0 评论 -
设计模式-单例模式
设计模式通常可以分为三类:创建型模式、行为型模式、结构型模式 创建型模式 单例模式 应用场景: 在多线程之间共享一个对象; 在程序空间上分配全局变量; 考虑性能,需考虑对象的创建事件; 实现方式: 构造函数私有化 提供一个全局的静态方法 在类中定义一个静态指针,指向类的变量的静态变量指针 根据初始化方式可分为懒汉式和饿汉式单例模式 懒汉式代码实现: #include&lt;iostream&g...原创 2019-01-06 11:54:36 · 327 阅读 · 2 评论 -
设计模式-装饰模式
应用场景: 动态地给一个对象添加一些额外的职责 代码实现: #include<iostream> using namespace std; #include <string> class Person { private: string szName; public: Person() {} Person(string name) { szName = nam...原创 2019-01-09 17:03:12 · 115 阅读 · 0 评论
分享