摘要:
前言 访问者模式,是一种将数据的结构与其操作分离的类行为型模式。它能够帮助我们解决数据结构稳定但数据操作多变的问题,使我们可以很容易的增加或修改数据的操作。 在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作 ”。结构Visitor(访问者接口):定义了每种元素... 阅读全文
摘要:
前言 模板方法,属于类行为型模式,是一种提高代码复用性和扩展性的技术。通过将某些类的公共行为封装到一个抽象类中,并由其子类选择性的实现其中的某些行为以改变这个类的行为方式。它的迷人之处在于它是一种反向的控制结构,即父类调用一个子类的操作。 在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMet... 阅读全文
摘要:
前言 策略模式,对象行为型模式的一种。在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 定义一些列的算法,把它们一个个封装起来,并且使它们可相互替换。使得算法可以独立于使用它的客户而变化 ”。 也就是说通过策略模式,我们能够将算法与其调用者分离成相对独立的个体,降低维护成本,使代码更加优雅。场景 就拿数据的搜索来说,可以简单的分为模糊搜索和精确搜索。在... 阅读全文
摘要:
前言 状态模式,对象行为型模式的一种。在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 允许一个对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类 ”。场景 我们都坐过火车,火车可以简单的分为“ 开门 ”,“ 关门 ”,“ 运行 ”,“ 停止 ”四个状态。火车在这四个状态下分别可以做不同的事情。比如只有在关门时才行运行、只有在停止时才能开门。 ... 阅读全文
摘要:
前言 观察者模式又称发布(Publish) / 订阅(Subscribe)模式,对象行为型模式的一种。在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并被自动更新 ”。场景 观察者模式,顾名思义就是存在一个观察者角色,它时刻观察着另一个目标角色,当这个目标角色做出观察者... 阅读全文
摘要:
前言 在日常生活中我们经常会接触到类似回滚或撤销的功能,比如单机游戏中的存档、windows中的备份/恢复、手机的恢复出厂设置以及编辑器中的撤销功能。本质上这些功能都是将系统某个瞬间的状态备份,以便在需要时将系统恢复至备份的状态。而备忘录模式就是一种帮助我们实现这一系列操作的设计模式。 备忘录模式又名快照模式,对象行为型模式的一种。在《设计模式 - 可复用的面向对象软件》一... 阅读全文
摘要:
前言 在开发软件的过程中,我们通常会将类设计的比较单纯,使其复用性更高。但类间的相互引用又使得类本身在没有其他类的支持下不能正常工作,导致其复用性降低。所以为了提高类的复用性我们需要尽可能的减少对其它类的引用,也就是说我们常说的解耦。中介者模式,顾名思义,就是存在一个类似中介的角色,类与类之间不直接交互而是通过中介进行间接的交互,也就意味着类与类之间不需要存在显示的引用,以达到松耦合的... 阅读全文
摘要:
摘要 最近在读GOF的Design Patterns: Elements of Reusable Object-Oriented Software(设计模式:可复用面向对象软件的基础),学习前辈们的经验来增加自己的编码设计能力。在学习的过程中,会把我从书上学到的知识以及自己的理解写到这里。一方面能够 阅读全文
摘要:
前言 迭代器模式,属于对象行为型模式。它的目的是将一个集合对象的迭代与其本身分离,使这个聚合对象更单纯,并且在遍历的同时不需要暴露该聚合对象的内部结构。 在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露对象的内部表示 ”。 结构 A 阅读全文
摘要:
前言 解释器模式,类行为型模式。一种用来解释特定文法(语言的语法和表达式)规则的方式。这种行为模式使用了类似组合的结构来构建一个抽象语法树(Abstract Syntax Tree,AST),用来描述该解释器所解释的语法。如果你想要了解组合模式,可跳转至二十三种设计模式[8] - 组合模式(Comp 阅读全文