![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
23种设计模式c++实现
我叫龙傲天
相信微末的力量
展开
-
23种设计方法c++实现(5)单例模式
单例模式: 这是最简单的模式,就是在程序中,对于某个类只允许实例化一个对象。 单例类负责自己的实例化,并提供调用它的接口。 UML结构图 设计要点 构造函数Singleton()设计为private,这样就只能自己负责实例化自己。 定义一个private staticSingleton(饿汉模式),或者定义一个private staticSingleton * (懒汉模式)。这...原创 2019-10-11 20:49:36 · 120 阅读 · 0 评论 -
23种设计模式c++实现(0)之用UML结构图来表示类之间的关系
UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。通过我在网上查阅资料,发现UML是一个应用比较广泛的建模语言,而且在Visio中也有专门的模块,但是在这里我们不做详细的追究,只是用UML来表示类与类之间的关系,从而让我们的设计模式的结构更加的直观。所以我们的目的就是能够看懂UML结构图就行。 UM...原创 2019-08-15 14:29:55 · 686 阅读 · 0 评论 -
23种设计模式c++实现(1)之模板方法(template mathod)
模板方法(template mathod) 在基类定义一个算法骨架,而将算法中的某些步骤推迟到子类中实现。也可以用钩子方法来选择算法骨架中的分支。 UML结构图 如上图所示:对于一些算法,我们可也将算法骨架个抽象出来,形成抽象的基类。但是对于算法中的某些步骤,我们暂时无法写出来,因为不同的使用者,对于这些步骤有不同的实现方式。因此在基类中我们用虚方法来定义这些步骤,子类继承基类,并在子类...原创 2019-08-16 09:34:55 · 173 阅读 · 0 评论 -
23种设计模式(0)之面向对象设计的八大原则
依赖倒置原则(DIP) 心思想:客户端代码(调用的类)尽量依赖(使用)抽象的组件。抽象的是稳定的。实现是多变的。 依赖倒置原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类 使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。 为了确保该原则的应用,一个具体类应当只实现接口或抽象类中声明过的方法,而不...原创 2019-08-21 20:07:44 · 128 阅读 · 0 评论 -
23种设计模式c++实现(2)策略模式(Strategy Pattern)
策略模式(Strategy Pattern) 它定义了算法家族,分别封装起来,让它们之间可以相互替代,此模式让算法的变化,不会影响到使用算法的客户。策略模式应该是面相过程的思维方式,到面向对象的思维方式转换的最直接的一个例子。封装出一个良好的接口给客户端使用,而底层算法的改变,不会影响到客户端。 UML结构图 应用场景 有一系列的算法方法,但从概念上来看,这些方法都解决的都是相同的工作...原创 2019-08-17 11:27:44 · 158 阅读 · 0 评论 -
23中设计模式c++实现(3)之观察者模式
观察者模式应用环境 当一个对象被多个对象所依赖,而且这一个对象发生改变时,需要通知那多个对象。并且这种改变经常发生。 UML结构图 Subject(抽象主题):提供增加(Attach)、删除(Detach)、通知(Notify)观察者的接口。 Observer(抽象观察者):提供自我更新(Updata)的接口。 ConcreteSubject(具体主题):实现增加(Attach)、删...原创 2019-09-03 21:53:01 · 104 阅读 · 0 评论 -
23中设计模式C++实现(4)之状态模式(State Pattern)
简述: 状态模式又叫做有限状态机。适应场景:我们的对象有多种状态,单对象同一时刻只能保持某一种状态,并当内部变量或者内部变量变化时,我们的对象会在这些状态中变换。 UML结构图 Context(上下文):定义一个与 Client 交互的接口。它维护对 ConcreteState 对象的引用,可以用该对象来定义当前状态。 State(抽象状态):定义接口,来声明每个 ConcreteSt...原创 2019-10-08 16:50:49 · 180 阅读 · 0 评论