
设计模式
cctdbnj
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式-单例模式
使用场景,一个类只需要一个实例的情况下,比如项目中操作配置项的类等。实现方法:将构造函数私有化,防止在该类之外创建对象,GetIns返回该类的静态成员变量,作为唯一的对象。class CDpnHelper{public: ~CDpnHelper(); static CDpnHelper& GetIns() { static CDpnHe...原创 2019-07-03 17:36:48 · 141 阅读 · 0 评论 -
设计模式-观察者模式
使用场景:对象存在一对多的情况时,比如某个对象的改变,需要通知依赖他的所有对象被观察者(Subect):改变时通知所有观察者,包含观察者的合集观察者(Observer):抽象类具体的观察者(ConcreteObserver):继承Observerclass Subject{public: void Attach(Observer* p) { m_vcObs.push_...原创 2019-07-03 20:10:42 · 124 阅读 · 0 评论 -
设计模式-策略模式
行为模式Stragegy,定义所有支持的算法的公共接口ConcreteStrategy,封装了具体的算法或行为,继承于StrategyContext,用一个ConcreteStrategy来配置,维护一个对Strategy对象的引用使用场景:一系列算法(完成相同的工作),但是实现方法不一样。可以使用同一方法调用所有的算法。下面是未使用设计模式的代码class CBird{...原创 2019-07-03 19:25:40 · 135 阅读 · 0 评论 -
设计模式-外观模式
外观模式:把对子系统一系列调用,封装成更高层的接口,降低用户与子系统之间的耦合性class C1{public: void Work() { cout << "c1 work"; }};class C2{public: void Work() { cout << "c2 work"; }};// 封装子系统C1,C2的work...原创 2019-07-03 20:30:24 · 123 阅读 · 0 评论