![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 61
常见的设计模式小结和c++简单实现
丰恒谷
拥有一颗改变世界的心,可惜找不到我的源代码!
展开
-
装饰器模式(动态组合)
装饰器模式(动态组合)原创 2021-06-26 19:43:22 · 361 阅读 · 0 评论 -
责任链模式(分离职责,动态组合)
责任链模式原创 2021-06-26 19:37:12 · 486 阅读 · 1 评论 -
策略模式(分离职责,选择实现)
目录1 定义2 本质与要点3 类图4 优缺点5 使用场景6 代码实现1 定义定义一系列算法,把他们一个个封装起来,并且使他们可以相互替换。使得算法独立于>他的客户端程序而变化.2 本质与要点 本质:分离职责,动态组合要点:策略模式提供了以系列可重用的算法,从而可以使得类型在运行时候方便的根据需要之>间进行切换消除条件判断语句,解耦和充分体现了开闭原则,单一职责3 类图4 优缺点优点:1 各自使用封装的算法,可以很容易引入新的算法来满足相同的接口2 由于事先的同一个接原创 2021-06-26 16:37:05 · 197 阅读 · 0 评论 -
单例模式设计
目录1 定义2 本质与要点3 类图4 优缺点5 使用场景6 代码实现1 定义定义一个类只能生成一个对象,并提供一个实例全局访问点。2 本质与要点设计单例模式主要注意两个问题:1 内存泄露 2 线程安全3 类图主要提供一个公共方法来访问4 优缺点主要是内存泄露和多线程安全的问题5 使用场景全局唯一访问的,比如配置实例等。6 代码实现template<typename T>class Singleton{public: static T&原创 2021-06-26 15:43:52 · 225 阅读 · 0 评论 -
观察者模式(触发联动)
目录1 定义2 本质与要点3 类图4 优缺点5 使用场景6 代码实现1 定义定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生变化的时候,所有依赖它的对象都得到通知并自动更新.2 本质与要点 本质:触发联动要点:1 观察者模式使得我们可以独立改变目标和观察者,二者关系松耦合2 观察者自己决定是否订阅通知,目标对象并不关注谁订阅了3 观察者不依赖通知顺序,目标对象也不需要4 常用于基于事件的ui框架中,也是mvc组成部分5 常用在分布式系统,actor原创 2021-06-25 11:30:45 · 374 阅读 · 0 评论 -
模板方法模式(通过算法骨架约束子类行为)
目录1 定义2 本质与要点3 类图4 优缺点5 使用场景6 代码实现1 定义定义一个操作算法的骨架,而将一些步租延迟到子类中。template method使得子类可以不改变某个算法的结构即可重定义该算法的某些特定步骤。2 本质与要点 本质:通过固定算法骨架来约束子类的行为要点:1 非常常用的设计模式,子类可以复写父类的子流程,使父类的大体流程更丰富2 反向控制流程的典型应用3 父类protected保护子类需要复写子流程,这样子类的子流程只能父类调用4 充分体现依赖导致原则。设计原则原创 2021-06-25 11:15:10 · 244 阅读 · 0 评论 -
设计模式之六大设计原则
@[TOC]目录1 介绍2 继承和组合内存模型3 模式设计原则1 介绍原创 2021-06-24 17:14:03 · 267 阅读 · 0 评论