摘要: 自2020.3.4日起,将本人博客迁移至CSDN,后续将在CSDN更新发布! 阅读全文
posted @ 2020-03-04 11:45 CompileLife 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 一、简介 1. 定义 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 2. 应用场景 (1)对象结构比较稳定,但经常需要在此对象结构上定义新的操作。 (2)希望在不修改原有类的前提下,实现对该对象内部的一些操作。 3. 优点 (1)可以通过增 阅读全文
posted @ 2019-03-24 22:33 CompileLife 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 一、简介 1. 定义提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。2. 应用场景1)访问一个聚合对象的内容而无需暴露它的内部表示;2)提供对聚合对象的多种遍历;3)为遍历不同的聚合结构提供一个统一的接口,即支持多态迭代。3. 优点1)简化了类的聚合接口;2)封装了对象的 阅读全文
posted @ 2019-02-16 13:31 CompileLife 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 一、简介1. 定义 解释器模式(Interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。2. 应用场景本模式适用于处理运算式等字符串的解析操作。3. 优点提供灵活的表达式解析处理方式,通过封装的对外接口,调用者可以不再关心具体的表达式 阅读全文
posted @ 2019-01-30 20:48 CompileLife 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 一、简介 模板设计模式的设计思路比较简单,核心是将不变的逻辑放在基类中处理,在子类中使用虚函数实现变动的方法。它是开发人员使用很频繁的一种模式,往往在代码重构提取基类的过程中就会使用到这种设计模式的思路。 1. 模板设计模式类图 如上图,抽象父类用于实现软件功能中的算法的框架,子类差异化的实现算法流 阅读全文
posted @ 2019-01-13 22:37 CompileLife 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 1. 在C++中,如果在类的构造函数中调用虚函数时,使用的是静态绑定。2. 建造者模式让对象的表示与构建相分离。一、简介建造者模式是当创建复杂对象的流程应该独立与该对象的组成部分以及他们的装配方式时适用的模式。本模式使得同样的构建过程可以创建不同的对象。1. 优点:1)隔离了构建的步骤和具体的实现, 阅读全文
posted @ 2019-01-06 21:19 CompileLife 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 一、简介1. 定义用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。2. 应用场景适用于系统中大量的对象需要相互的依赖,并且彼此间的依赖关系复杂混乱,此时在重构过程中,可以用一个中间类来管理这些对象之间的依赖关系。3.优缺点 阅读全文
posted @ 2019-01-02 22:14 CompileLife 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 一、什么是状态模式 1. 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 状态模式主要是为了消除庞大的条件分支语句,将各种状态 阅读全文
posted @ 2018-12-22 14:37 CompileLife 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 外观模式较为简单,其类图如下: 外观模式的使用场景分为三个阶段; 首先,在设计初期,应该有意识的将不同的两个层分离; 其次,在开发阶段,子系统往往由于不断的重构演化变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少他们之间的依赖; 第三,在维护一个遗留的大型系统的时候,可能这个系统已经 阅读全文
posted @ 2018-12-22 14:34 CompileLife 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 观察者模式 阅读全文
posted @ 2018-12-16 11:31 CompileLife 阅读(188) 评论(0) 推荐(0) 编辑