自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ApeLife技术博客

沿着方向前进,解决所遇到的问题,同时别忘了回头望望

  • 博客(25)
  • 资源 (3)
  • 收藏
  • 关注

原创 C++设计模式之外观模式(三)

3、外观模式总结    引入了外观类,解除了客户类与子系统的耦合性。客户类不需要直接操作子系统,而是由外观类负责处理,对客户端而言是透明的,客户类只需要操作外观类就可以了,符合"迪迷特法则"。如果多个地方需要Facade,也就是说外观可以实现功能的共享,也就是实现复用,同样的调用代码只用在Facade里面写一次就好了,不用在多个调用的地方重复写。如果某个系统模块需要修改,只需要修改这个系统模块

2014-08-31 21:41:54 1617

原创 C++设计模式之外观模式(二)

2、手机备份软件的设计与实现某软件公司将开发一款手机备份软件,功能如下:能够对手机中的通讯录,短信,照片这些资源进行备份。通讯录,短信,照片备份是三个独立的模块。请用外观模式对此进行设计。1.不使用外观模式的实现方式    TelphoneNumber为通讯录备份模块、ShortMessage为短信备份模块、Image为照片备份模块。实现代码如下:#

2014-08-31 20:32:48 1735

原创 C++设计模式之外观模式(一)

自己有过组装电脑的人都知道,需要到电子市场去购买CPU、主板、硬盘、内存、显示器、光驱等配件。这个方案是好,但需要对各种配件都比较熟悉,这样才能选择最合适的配件,而且还需要考虑配件之间的兼容性。还有一个方案,就是到电子城,找一家专门组装电脑的公司,把自己的要求提出来,然后等着提电脑就好了。我们不需要关心要购买什么样的配件,也不需要知道电脑是如何组装起来的,所有这些操作都交给电脑组装公司,由它代为完

2014-08-31 19:06:40 1142

原创 C++设计模式之状态模式(四)

4、状态模式总结    状态模式将一个对象在不同状态下的不同行为封装在一个个状态类中,通过设置不同的状态对象可以让环境对象拥有不同的行为。而状态转换的细节对于客户端而言是透明的,客户端不直接操作状态类,也就不需要知道状态转换细节,降低了客户端与具体状态类的耦合性。状态类和环境类是一种组合的关系,当客户端调用环境类的方法时,环境类将委托调用状态类的方法。使用状态模式封装了一个个具体的状态类,

2014-08-31 10:54:48 1418

原创 C++设计模式之状态模式(三)

3、使用环境类实现状态的转换    在状态模式中实现状态转换时,具体状态类可通过调用环境类Context的setState()方法进行状态的转换操作,也可以统一由环境类Context来实现状态的转换。此时,增加新的具体状态类可能需要修改其他具体状态类或者环境类的源代码,否则系统无法转换到新增状态。但是对于客户端来说,无须关心状态类,可以为环境类设置默认的状态类,而将状态的转换工作交给具体状态类

2014-08-30 22:45:37 1353

原创 C++设计模式之状态模式(二)

2、智能空调的设计与实现某软件公司将开发一套智能空调系统: 系统检测到温度处于20---30度之间,则切换到常温状态;温度处于30---45度,则切换到制冷状态; 温度小于20度,则切换到制热状态。请使用状态模式对此系统进行设计。    从需求中可以看出,空调可以处于三种状态: 制热状态、常温状态、制冷状态。每种状态下都存在三种行为:保持常温、制冷、制热

2014-08-30 22:14:25 3144 1

原创 C++设计模式之状态模式(一)

在阐述状态模式之前,先来看一个例子。一个银行取款问题: 如果账户余额大于0,则正常取款;如果余额在-2000和0之间,则透支取款;如果余额小于-2000,则账户处于冻结状态,无法进行取款操作。    实现代码如下://银行账户class Account{private: //余额 int m_nBalance; public: //取款操作 void WithDraw()

2014-08-30 20:12:28 1320

原创 C++设计模式之适配器模式(三)

4、适配器模式总结    在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承关系。不论是对象适配器还是类适配器,适配器模式都将现有接口转化为客户类所期望的接口,实现了对现有类的复用。为了避免两个或者多个事物之间直接耦合,应该如何分配职责? 大多数情况都可以通过增加一层间接性来解决,将职责分配给中介对象,使其作为其他构件或服务之间的媒介,以避免他

2014-08-27 12:49:10 1519

原创 C++设计模式之适配器模式(二)

3、Socket网络通信的设计与实现------类适配器    除了对象适配器模式之外,适配器模式还有一种形式,那就是类适配器模式,类适配器模式和对象适配器模式最大的区别在于适配器和适配者之间的关系不同,对象适配器模式中适配器和适配者之间是关联关系,而类适配器模式中适配器和适配者是继承关系。不管是对象适配器还是类适配器,都是为了复用适配者类的功能。    SocketPackage就是成熟

2014-08-26 22:56:34 1508

原创 C++设计模式之适配器模式(一)

现在的笔记本都只存在USB接口,用来口,电脑上存在的是USB接口,两者如何通信呢?可以使用USB转串口线连接电脑和嵌入式设备,其中USB一端连接电脑、串口和外部设备进行通信。然而在一些嵌入式设备上(例如ARM9),通常使用串口和电脑进行通信。嵌入式设备上存在的是串一端连接嵌入式设备。本来电脑和嵌入式设备由于接口不兼容,无法进行通信,而使用USB转串口线这个适配器,两者之间就可以正常进行数据通信。在

2014-08-26 21:01:34 2177

原创 C++设计模式之策略模式

这两年,中国好声音席卷全国,深受观众的青睐,收视率也创造了新高。无论你是否身份低微或是高富帅,都可以通过好声音这个平台,实现自己的明星梦。紧随其后,中国好舞蹈等节目铺天盖地席卷而来,给选手一个圆梦的机会。如果想实现明星梦,可以参加中国好声音,也可以参加中国好舞蹈这些节目,还可以参加星光大道,或者像筷子兄弟一样,拍摄MV。实现明星梦的方式很多,根据自己的喜爱选择其中的一种方式。在设计模式中,也存在一

2014-08-23 20:23:18 1137

原创 C++设计模式之模板方法模式

临近毕业,很多人都会到人才网发布简历以寻求符合自己要求的岗位。登陆人才网,系统会给我们提供一份统一的模板,我们只需要按照要求填写个人信息、教育背景、工作经历、项目经验等内容就可以了。虽然大家都是使用相同的模板,但每个人填写的求职信息各不相同,简历也就各不一样。在设计模式中,也存在类似的一种模式。实现某个功能需要多个步骤,其中有些步骤是固定的,有些步骤是不固定的,存在可变性,提供一个模板方法来定义这

2014-08-22 19:35:12 1126

原创 C++设计模式之建造者模式(三)

4、引入钩子方法的建造者模式    建造者模式除了逐步构建一个复杂产品对象外,还可以通过Director类来更加精细地控制产品的创建过程,例如增加一类称之为钩子方法(HookMethod)的特殊方法来控制是否对某个buildPartX()的调用,也就是判断产品中某个部件是否需要被建造。钩子方法的返回类型通常为boolean类型,方法名一般为isXXX(),钩子方法定义在抽象建造者类中。在抽

2014-08-20 00:11:01 2183

原创 C++设计模式之建造者模式(二)

3、省略指挥者Director的建造者模式    指挥者类Director在建造者模式中扮演非常重要的作用,简单的Director类用于指导具体建造者如何构建产品,它按一定次序调用Builder的buildPartX()方法,控制调用的先后次序,并向客户端返回一个完整的产品对象。Direcotr针对抽象的建造者进行编程,如果需要不同的建造者,只需把建造者传入指挥者类,无需修改之前的代码。 

2014-08-19 22:58:22 2029

原创 C++设计模式之建造者模式(一)

在内蒙古这辽阔的草原上,放养着成千上万的奶牛。蒙牛集团在这里崛起,迅速抢占中国大半牛奶市场,造就了一个商业帝国。蒙牛集团牛奶生产流程大致是这样的: 放养奶牛--->牛奶加工--->牛奶包装--->销售。经历从放养奶牛到进行市场销售这一系列环节,蒙牛牛奶才得以诞生。虽然生产流程比这个流程还复杂,但对客户而言,根本不需要知道牛奶生产的细节,只需要到超市购买就行了。在设计模式中,也存在一个类似的模式,封

2014-08-18 21:20:47 1008

原创 C++设计模式之抽象工厂模式(二)

抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模

2014-08-17 18:10:34 1840

原创 C++设计模式之抽象工厂模式(一)

伟创力(世界500强企业),公司有笔记本生产车间、电视机车间、空调车间、电话生产等车间,各生产车间各行其责,生产出不同类型的产品。伟创力不再是生产单一产品的企业,而是生产出多种不同类型的产品,各产品属于不同产品等级结构中。在设计模式中,也存在一种类似的模式,可以创建一系列产品,这些产品位于不同产品等级结构,产品之间可以没有任何联系,但他们组合起来,可以成为一个产品族,称之为抽象工厂模式。

2014-08-17 13:56:31 1263

原创 C++设计模式之工厂方法(二)

#ifndef _BACKGROUND_STYLE_H_#define _BACKGROUND_STYLE_H_#include #include using namespace std;//背景风格抽象类class BackgroundStyle{public: //虚方法,显示背景风格 virtual void DisplayStyle() = 0;};//古典

2014-08-14 23:23:28 1307

原创 C++设计模式之工厂方法模式(一)

1、工厂方法模式概述       在简单工厂模式中只提供一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它需要知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这违背了“开闭原则”。此外,在简单工厂模式中,所有的产品都由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂,具体产品

2014-08-14 22:47:57 1249

原创 C++设计模式之简单工厂模式(二)

3、使用模式的实现方式

2014-08-12 22:58:41 1338

原创 C++设计模式之简单工厂模式(一)

简单工厂模式并不属于GoF 23个经典设计模式,但通常将它作为学习其他工厂模式的基础,它的设计思想很简单,其基本流程如下:       首先将需要创建的各种不同对象(例如各种不同的Chart对象)的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类都是抽象产品类的子类;然后提供一个工厂类用于创建各种产品,在工厂类中提供

2014-08-12 12:16:49 1338

原创 C++设计模式之原型模式(三)

3、原型模式总结

2014-08-07 22:43:42 1088

原创 C++设计模式之原型模式(二)

3.使用设计模式的实现

2014-08-07 21:23:39 1118

原创 C++设计模式之原型模式(一)

看到上图中的百元大钞、心里总在想这Money是我的那该多好。仔细看这些百元大超,除了编号不同外,其余的信息都是一样的。印刷厂首先有一张100元的钞票,然后把它当作原型,印刷出一叠叠的钞票,流入市场。在设计模式中也存在一个类似的模式,可以根据一个原型对象克隆出多个一模一样的对象,该模式称之为原型模式。

2014-08-07 12:07:13 1351

原创 C++设计模式之单例模式

世界上只有一个中国,只有一个fujin

2014-08-04 20:07:11 2220

Linux c程序设计大全(吴岳) 完整版 pdf 下

这是完整版的Linux c程序设计大全, 作者吴岳。网络上下载的都是只有部分章节,而这里提供的是完整版的书籍供下载使用。 由于书籍容量大,每次上传大小有限制,特分成三个压缩包(上,中,下),您现在下载的是下部分。">这是完整版的Linux c程序设计大全, 作者吴岳。网络上下载的都是只有部分章节,而这里提供的是完整版的书籍供下载使用。 由于书籍容量大,每次上传大小有限制,特分成三个压缩包(上,中,下),您现在下载的是下部分? [更多]

2014-06-30

Linux c程序设计大全(吴岳)--- 完整版 pdf (中)

这是完整版的Linux c程序设计大全, 作者吴岳。网络上下载的都是只有部分章节,而这里提供的是完整版的书籍供下载使用。 由于书籍容量大,每次上传大小有限制,特分成三个压缩包(上,中,下),您现在下载的是中部分。

2014-06-30

linu C程序设计大全 吴岳 完整版 上

这是完整版的Linux c程序设计大全, 作者吴岳。网络上下载的都是只有部分章节,而这里提供的是完整版的书籍供下载使用。 由于书籍容量大,每次上传大小有限制,特分成三个压缩包(上,中,下),您现在下载的是上部分。">这是完整版的Linux c程序设计大全, 作者吴岳。网络上下载的都是只有部分章节,而这里提供的是完整版的书籍供下载使用。 由于书籍容量大,每次上传大小有限制,特分成三个压缩包(上,中,下),您现在下载的是上部分? [更多]

2014-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除