摘要: 备忘录(Memonto)模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。 (学习) 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外部化,存储起来,从而可以在将来 阅读全文
posted @ 2021-01-27 12:24 johnny_zhao 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 访问者(Visitor)模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据则可以保持不变。 (学习) 分派的概念 变量被声明时的类型叫做变量的静态类型(Static Type),有些人又把静态类型叫做明显类型(Apparen 阅读全文
posted @ 2021-01-27 12:19 johnny_zhao 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 解释器(Interpreter)模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。(学习) 解释器模式的结构 下面就以一个示意性的系统为例,讨论解释器模式的结构。系统的结构图如下: 模式所涉及的角色如下所 阅读全文
posted @ 2021-01-27 12:18 johnny_zhao 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 调停者模式是对象的行为模式。调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而便它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其它的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。 (学习) 为什么需要调停者 如下图所示 阅读全文
posted @ 2021-01-27 12:17 johnny_zhao 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 合成模式属于对象的结构模式,有时又叫做“部分-整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。 (学习) 合成模式 合成模式把部分和整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由它们复合面成的合成对象 阅读全文
posted @ 2021-01-27 12:15 johnny_zhao 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 策略模式(Strategy)属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 (学习) 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象 阅读全文
posted @ 2021-01-27 12:13 johnny_zhao 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现余下的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。 (学习) 模板方法模式的结构 模板方法模式是所有模式中最为常 阅读全文
posted @ 2021-01-27 12:12 johnny_zhao 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 观察者模式是对象的行为模式,以叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 (学习) 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象 阅读全文
posted @ 2021-01-27 12:10 johnny_zhao 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 迭代子模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。 (学习) 聚集和java聚集 多个对象聚在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对 阅读全文
posted @ 2021-01-27 12:09 johnny_zhao 阅读(228) 评论(0) 推荐(0) 编辑
摘要: (参考) 阅读全文
posted @ 2021-01-27 12:07 johnny_zhao 阅读(42) 评论(0) 推荐(0) 编辑