
设计模式C++
swqqcs
这个作者很懒,什么都没留下…
展开
-
C++设计模式——简单工厂模式及具体应用(含例子)
一.简单工厂模式又称静态工厂方法模式(Static Factory Method),它不是Gof 所讲的23种设计模式之一,但是它却是我们在编码过程中经常使用的方法之一。 1.静态工厂方法统一管理对象的创建。静态工厂方法通过传入的参数判断决定创建哪一个产品的实例,封装了对象的创建,客户端只管消费,实现了对责任(模块)的分割。2.静态工厂方法推迟了产品的实例化。通过XML翻译 2014-09-08 17:36:25 · 3720 阅读 · 1 评论 -
C++设计模式——外观模式
自己有过组装电脑的人都知道,需要到电子市场去购买CPU、主板、硬盘、内存、显示器、光驱等配件。这个方案是好,但需要对各种配件都比较熟悉,这样才能选择最合适的配件,而且还需要考虑配件之间的兼容性。还有一个方案,就是到电子城,找一家专门组装电脑的公司,把自己的要求提出来,然后等着提电脑就好了。我们不需要关心要购买什么样的配件,也不需要知道电脑是如何组装起来的,所有这些操作都交给电脑组装公司,由它代为完翻译 2014-09-09 21:24:29 · 1167 阅读 · 0 评论 -
C++设计模式——策略模式
前言这两年,中国好声音席卷全国,深受观众的青睐,收视率也创造了新高。无论你是否身份低微或是高富帅,都可以通过好声音这个平台,实现自己的明星梦。紧随其后,中国好舞蹈等节目铺天盖地席卷而来,给选手一个圆梦的机会。如果想实现明星梦,可以参加中国好声音,也可以参加中国好舞蹈这些节目,还可以参加星光大道,或者像筷子兄弟一样,拍摄MV。实现明星梦的方式很多,根据自己的喜爱选择其中的一种方式。在设计模式翻译 2014-09-09 19:43:51 · 781 阅读 · 0 评论 -
C++设计模式——中介者模式
在没有引入星形网络拓扑图之前,计算机之间可以直接通信,但如果某台计算机要和其它多台计算机进行通信,则这台计算机必须认识所要进行通信的其余计算机。计算机与计算机之间存在多对多的关系,导致计算机之间关系非常复杂。引入星形网络拓扑图之后,计算机之间不再直接进行通信,而是由交换机进行处理。计算机不需要认识其它的计算机,只需要认识交换机就可以了。计算机之间的关系从多对多变成了一对多。在设计模式中也存在类似的翻译 2014-09-09 21:38:40 · 1178 阅读 · 0 评论 -
C++设计模式——状态模式
在阐述状态模式之前,先来看一个例子。一个银行取款问题: 如果账户余额大于0,则正常取款;如果余额在-2000和0之间,则透支取款;如果余额小于-2000,则账户处于冻结状态,无法进行取款操作。 实现代码如下://银行账户class Account{private: //余额 int m_nBalance; public: //取款操作 void WithDr翻译 2014-09-09 20:53:34 · 1111 阅读 · 0 评论 -
C++设计模式——适配器模式(对象适配器、类适配器)
前言 现在的笔记本都只存在USB接口,用来口,电脑上存在的是USB接口,两者如何通信呢?可以使用USB转串口线连接电脑和嵌入式设备,其中USB一端连接电脑、串口和外部设备进行通信。然而在一些嵌入式设备上(例如ARM9),通常使用串口和电脑进行通信。嵌入式设备上存在的是串一端连接嵌入式设备。本来电脑和嵌入式设备由于接口不兼容,无法进行通信,而使用USB转串口线这个适配器,两者之间就可以正翻译 2014-09-09 20:34:33 · 1446 阅读 · 0 评论 -
创建型模式总结
流行的设计模式中,一共有这几种工厂模式:抽象工厂、工厂方法、简单工厂。所谓“工厂”这个名词在设计模式领域中表示的就是一个委托与被委托的关系,与多态无关。简单工厂:将创建类B的职责委托给类A执行,类A就是生产类B的工厂;类B就是产品。注意,在简单工厂中只体现了职责的委托,没有父类和子类等继承关系。工厂方法:将创建类B的职责委托给类A来执行,类B是抽象的,它有多个子类;类A也是抽象的,翻译 2014-09-09 17:08:03 · 760 阅读 · 0 评论 -
C++设计模式——单例模式
神州上下五千年,为了抵御匈奴的入侵,无数的人民投入到兴建万里长城浩瀚的工程中。也正因为有这些劳动人民辛勤的付出,才有了今天世界八大奇迹之一-----独一无二的万里长城。在软件开发中,同样存在这种唯一的实例,它就是接下来要讲的单例模式。1、单例模式:单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统翻译 2014-09-09 16:22:43 · 950 阅读 · 0 评论 -
C++设计模式——模版方法
临近毕业,很多人都会到人才网发布简历以寻求符合自己要求的岗位。登陆人才网,系统会给我们提供一份统一的模板,我们只需要按照要求填写个人信息、教育背景、工作经历、项目经验等内容就可以了。虽然大家都是使用相同的模板,但每个人填写的求职信息各不相同,简历也就各不一样。在设计模式中,也存在类似的一种模式。实现某个功能需要多个步骤,其中有些步骤是固定的,有些步骤是不固定的,存在可变性,提供一个模板方法来定义这翻译 2014-09-09 16:05:58 · 772 阅读 · 0 评论 -
C++设计模式——原型模式
P书上的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。其中有一个词很重要,那就是拷贝。可以说,拷贝是原型模式的精髓所在。举个现实中的例子来介绍原型模式。找工作的时候,我们需要准备简历。假设没有打印设备,因此需手写简历,这些简历的内容都是一样的。这样有个缺陷,如果要修改简历中的某项,那么所有已写好的简历都要修改,工作量很大。随着科技的进步,出现了打印设备。我们只需手写一份,翻译 2014-09-09 15:52:25 · 751 阅读 · 0 评论 -
C++设计模式——建造者模式(一般模式,省略指挥者、引入钩子)
在内蒙古这辽阔的草原上,放养着成千上万的奶牛。蒙牛集团在这里崛起,迅速抢占中国大半牛奶市场,造就了一个商业帝国。蒙牛集团牛奶生产流程大致是这样的: 放养奶牛--->牛奶加工--->牛奶包装--->销售。经历从放养奶牛到进行市场销售这一系列环节,蒙牛牛奶才得以诞生。虽然生产流程比这个流程还复杂,但对客户而言,根本不需要知道牛奶生产的细节,只需要到超市购买就行了。在设计模式中,也存在一个类似的模式,封翻译 2014-09-08 21:12:07 · 1175 阅读 · 0 评论 -
C++设计模式——抽象工厂模式(含实例)
伟创力(世界500强企业),公司有笔记本生产车间、电视机车间、空调车间、电话生产等车间,各生产车间各行其责,生产出不同类型的产品。伟创力不再是生产单一产品的企业,而是生产出多种不同类型的产品,各产品属于不同产品等级结构中。在设计模式中,也存在一种类似的模式,可以创建一系列产品,这些产品位于不同产品等级结构,产品之间可以没有任何联系,但他们组合起来,可以成为一个产品族,称之为抽象工厂模式。翻译 2014-09-08 20:35:42 · 5859 阅读 · 0 评论 -
C++设计模式——工厂方法及工厂方法的隐藏实现(qq空间背景的例子)
1、工厂方法模式概述 在简单工厂模式中只提供一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它需要知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这违背了“开闭原则”。此外,在简单工厂模式中,所有的产品都由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂,具体产品与工厂翻译 2014-09-08 19:50:54 · 1286 阅读 · 0 评论 -
GoF设计模式概览
以文本和思维导图的方式简明扼要的介绍了GoF的23个经典设计模式,可当成学习设计模式的一个小手册,偶尔看一下,说不定会对大师的思想精髓有新的领悟。GoF(“四人帮”,又称Gang of Four,即Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides)创建型模式(5个):单例模式、原型模式、建造者模式、工厂模式、抽象工厂翻译 2014-09-10 13:05:54 · 1216 阅读 · 0 评论