![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 56
eagleyeeee
软件新手 C/C++
展开
-
设计模式之简单工厂模式 C++实现
个人认为简单工厂模式是最简单的一种设计模式,同时也是应用最广泛的一种设计模式。设计思路是用户根据条件筛选生成哪种产品,然后将条件传递给factory,由Factory生成具体产品(本文为具体运算)。 UML如图代码实现:运算类//运算 //Operation.h #pragma once #include <string> class operation { ...原创 2018-06-23 17:34:40 · 174 阅读 · 0 评论 -
设计模式之工厂方法模式 C++实现
前文介绍了简单工厂模式,用起来很简单。但是如果要增加其他运算那么简单工厂模式就需要修改现有代码。这违背了开放-封闭原则(对扩展开放,对修改封闭)。工厂方法模式弥补了这种缺点。工厂方法模式,让子类决定实例化哪一个类。UML图如下;不需要判断条件,客户端直接根据自己的需求调用相应的工厂。代码如下;(为了方便此处直接使用创建某产品作为例子)//工厂类如下//Factory #pragma onc...原创 2018-07-01 15:10:12 · 149 阅读 · 0 评论 -
设计模式之抽象工厂模式 C++实现
前面两篇文章分别介绍了,简单工厂模式以及工厂方法模式。接下来我将介绍一下,抽象工厂模式。抽象工厂模式主要用于具有复杂层级和分类的设计中。比如,分别把网卡驱动和声卡驱动当作一种product。那windows和linux以及mac都需要这两种product。此类设计使用抽象工厂模式最合适不过。抽象工厂模式比较易于交换产品系列。 UML图如下。从UML图中可以看出,想要某xie li具体...原创 2018-07-07 20:13:35 · 193 阅读 · 0 评论 -
设计模式之代理模式 C++实现
代理模式实现起来比较简单。简单描述就是,隐藏真正实现的功能,而采用一个代理类来进行对隐藏部分的访问。客户只操作代理类。代理模式从一定程度上降低了系统的耦合性。 代理模式应用有集中情况 一,远程代理。为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。 二,虚拟代理。根据需要创建开销很大的对象。通过它来存放实例化需要很长时间...原创 2018-07-28 17:31:42 · 153 阅读 · 0 评论 -
设计模式之单例模式 C++实现
单例模式是应用很广泛的一种设计模式,当需要某个类在整个工程中只有一个实例的时候,就需要用到单例模式了。实现思路也不难。首先,将构造函数设置为私有(private)权限,这样就不允许外部创建实例了。然后,内部创建一个实例,再通过一个接口的getInstance(),将其设置为公开(public)权限的静态(static)特性,外部就可以通过这个接口来访问类了。 普通单例模式 主要代码如下: ...原创 2018-07-22 12:31:55 · 164 阅读 · 0 评论 -
设计模式之装饰模式 C++实现
有时候我们需要在某个类已有的功能中添加新的功能。此时我们可以用继承的方式来给类添加功能。我们也可以用装饰模式来实现。 装饰模式,动态的给一个对象添加功能。与继承的方式相比,它更有灵活性。 装饰模式实现思路是。在原有对象上嵌入想要扩展的装饰器。装饰器实现装饰功能。 UML图如下; 其中,Component定义一个对象接口,可以动态的给这些对象添加功能。Decora...原创 2018-08-04 18:29:31 · 199 阅读 · 0 评论