设计模式
Mr.L00
这个作者很懒,什么都没留下…
展开
-
设计模式--模板方法模式
解释说明: 模板模式也是相当简单的一种模式,而且是比较常用的。模板模式是定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 说明:在CHummerModel声明Start、Engineboom、Alarm、Stop虚函数,由派生类实现。基类的Run负责组织逻辑,分别调用这几个派生类实现的函数。 注...原创 2019-06-18 19:36:27 · 90 阅读 · 0 评论 -
设计模式--桥接模式
解释说明: main(),客户 IProduct,产品接口 CHouse,房子 CIPod,ipod CClothes,服装 CNewCorp,桥梁类,MakeMoney()是桥梁方法 CNewHouseCorp,只能生产房子,所以构造函数是CHouse* CShanZhaiCorp,什么赚钱就生产什么,所以构造函数是IProduct* 说明:客户直接使用CNewHouseCor...转载 2019-06-23 17:56:35 · 97 阅读 · 0 评论 -
设计模式---建造者模式
解释说明: main(),客户 CCarModel,产品模型 CBenzModel,奔驰模型 CBMWModel,宝马模型 ICarBuilder,建造者接口 CBenzBuilder,奔驰建造者 CBMWBuilder,宝马建造者 CDirector,导演 说明:CCarModel实现模板方法,Builder负责开始建造产品。建造产品时,构建的顺序由Director或main决...转载 2019-06-23 10:11:15 · 86 阅读 · 0 评论 -
设计模式--门面模式
解释说明: 基本上每个软件系统都会用到的模式,其含义是为子系统中的一组接口提供一个一致的界面, 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。简单说,就是将复杂的逻辑封装起来,对外公开简单的接口,由客户程序调用。 以收发信件和警察检查实例为例 说明:邮局对外只有一个窗口,接收信件内容和邮件地址。对内调用邮件处理的4个函数。将复杂逻辑封装在邮局的里面,当需要增加警察来检查信件时,...原创 2019-06-18 16:45:38 · 102 阅读 · 0 评论 -
设计模式--工厂模式
解释说明: 一个工厂可以生产同类型产品多件。方便创建 同种产品类型的 复杂参数 对象 工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 缺点 扩展性差(我想增加一具体产品...原创 2019-06-18 16:39:33 · 74 阅读 · 0 评论 -
设计模式--多例模式
解释说明: 和单例基本一样,是有个数限制的单例。如果对于产生的实例个数没有限制,那就不是多例了,和普通的类没有区别 举例:曾经开发过一个从服务端以UDP协议,发送文件到客户端的程序。客户端连接服务端时采用TCP协议,服务端接受连接,产生一个向客户端传输文件的实例FileService。每个客户端的连接都会产生一个实例,但同一客户端的多个连接请求会共享一个FileService实例。理论上讲Fi...原创 2019-06-18 09:56:37 · 109 阅读 · 0 评论 -
设计模式--单例模式
解释说明: 在系统中只允许产生这个类的一个实例, 实例说明:很多大臣拜见的皇帝,只有一个。体现在面向对象方面,CEmperor定义一个静态指针,和一个静态函数,私有化构造函数、析构函数、构造函数复制、重载赋值语句。 注意:线程安全,采用互斥体的方式实现 优点: 系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能。 缺点: 当想...原创 2019-06-17 22:16:23 · 86 阅读 · 0 评论 -
设计模式--代理模式
解释说明: main(),西门庆 IKindWomen,接口 CWangPo,代理 CPanJinLian,实际执行者之一 CJiaShi,实际执行者之二 看起来代理模式的结构和策略模式类似,都是由一个类来装载接口的一个实例,策略模式是CContext来装载,代理模式是CWangPo来装载。CContext不是从IStrategy派生,所以不需要实现IStrategy接口函数,而CWa...原创 2019-06-17 15:53:37 · 167 阅读 · 0 评论 -
设计模式--策略模式
解释说明: main(),赵云 CContext,锦囊 IStrategy,策略接口 CBackDoor,策略之一 CGivenGreenLight,策略之二 CBlockEnemy,策略之三 说明:一个策略放到一个锦囊里。当用的时候,找到这个锦囊,从锦囊里拿出策略来使用。 注意:锦囊只是简单的装载和调用策略,锦囊里没有逻辑。策略会有更大的自主权,运行更多的逻辑。 ...原创 2019-06-17 11:30:18 · 112 阅读 · 0 评论 -
设计模式--命令模式
解释说明: main(),客户 CInvoker,命令接收者,如项目经理 IGroup,执行者接口 CRequirementGroup,实际执行者之一 CPageGroup,实际执行者之二 CCodePage,实际执行者之三 ICommand,命令接口 CAddRequirementCommand,Execute函数,将调用CRequirementGroup的多个命令。来组合...转载 2019-06-24 10:39:59 · 112 阅读 · 0 评论