摘要: 一、定义 访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 双分派:对于消息表达式a.m(b),能够按照a和b的实际类型为其绑定对应方法体。 二、示例代码 阅读全文
posted @ 2020-02-06 16:50 兮云飞扬 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 一、定义 享元模式(Flyweight),运用共享技术有效的支持大量细粒度的对象。 二、示例代码 阅读全文
posted @ 2020-02-03 00:22 兮云飞扬 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 一、定义 中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 二、示例代码 三、优缺点 中介者模式一般应用于一组对象以定义良好但是复杂的方式进行通信的场合,以及想定制一个分布在多个类中的行为, 阅读全文
posted @ 2020-02-02 00:43 兮云飞扬 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 一、定义 职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 二、示例代码 三、好处 1.当客户提交一个请求时,请求是沿链传递直至有一个hand 阅读全文
posted @ 2020-01-31 23:52 兮云飞扬 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 一、定义 命令模式(command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 二、示例代码 三、作用 1.它能较容易地设计一个命令队列; 2.在需要的情况下,可以较容易地将命令记录日志; 3.允许接收请求的一方决定是否要否决 阅读全文
posted @ 2020-01-27 00:34 兮云飞扬 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 一、定义 桥接模式(Bridge):将抽象部分与它的实现部分分离,使他们都可以独立的变化。 二、示例代码 阅读全文
posted @ 2020-01-26 22:25 兮云飞扬 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 一、定义 组合模式(Composite):将对象组合成树形结构以表示’部分 整体‘的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 二、优缺点 优点:组合模式可以让客户端一致的使用组合结构和单个对象。当需求是体现部分与整体层次的结构时,以及希望可以忽略组合对象和单个对象的不同,统一 阅读全文
posted @ 2020-01-21 02:04 兮云飞扬 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 一、定义 备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。 二、用处和缺点 用处:适用于功能比较复杂,但需要维护或记录属性历史的类。可以根据保存的memento信息还原到前一个状态。 缺点:角色状态需要 阅读全文
posted @ 2020-01-20 00:09 兮云飞扬 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 一、定义 适配器模式(Adapter),将一个类的接口转换为客户希望的另外一个接口。Adapter模式使得原先由于接口不兼容而不能一起工作的那些类可以一起工作。 二、示例代码 阅读全文
posted @ 2020-01-19 00:28 兮云飞扬 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 一、定义 状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 二、好处和用处: 好处是将与特定状态相关的行为局部化,并且将不同状态的行为分割开来。当控制一个对象状态转换的条件表达式过于复杂时,把状态的判断逻辑转移到表示不同状态的一系列类中。将复杂的判断逻 阅读全文
posted @ 2020-01-17 01:20 兮云飞扬 阅读(77) 评论(0) 推荐(0) 编辑