摘要: 访问者模式(Visitor): 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 访问者模式适用于数据结构相对稳定的系统。它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由地演化。访问者模式的目的是要把处理从数据结构分 阅读全文
posted @ 2019-12-18 16:54 微风吹过165 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 解释器模式(Interpreter): 给定一个语言,定义它的文法中的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问 阅读全文
posted @ 2019-12-18 15:57 微风吹过165 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 享元模式(Flyweight): 运用共享技术有效地支持大量细粒度的对象。 内部状态与外部状态 在享元对象内部并且不会随环境改变而改变的共享部分,可以称为是享元对象的内部状态,而随环境改变而改变的、不可以共享的状态就是外部状态了。事实上,享元模式可以避免大量非常相似类的开销。在程序设计中,有时需要生 阅读全文
posted @ 2019-12-18 10:50 微风吹过165 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 中介者模式(Mediator): 用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。 基本代码 中介模式的优缺点 中介模式很容易在系统中应用,也很容易在系统中误用。当系统出现了‘多对多’交互复杂的对象群时,不要急于使用中介 阅读全文
posted @ 2019-12-17 12:29 微风吹过165 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 职责链模式(Chain of Responsibility): 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。 职责链的好处是当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHandler 阅读全文
posted @ 2019-12-17 09:53 微风吹过165 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 命令模式(Command): 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 烧烤程序 命令模式的作用 第一,它能较容易的设计一个命令队列。 第二,在学要的情况下,可以较容易的将命令记入日志。 第三,允许接收请求的一方决定是否要否决 阅读全文
posted @ 2019-12-16 14:35 微风吹过165 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 很多情况下用继承会带来麻烦。比如,对象的继承关系是在编译时就定义好了的,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。这 阅读全文
posted @ 2019-12-16 09:57 微风吹过165 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 单例模式(Singleton): 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的办法。 基本代码 阅读全文
posted @ 2019-12-14 19:13 微风吹过165 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式(Iterator): 提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可以让外部代码透明度访问集合内部的数据。 阅读全文
posted @ 2019-12-14 16:15 微风吹过165 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 组合模式(Composite): 将对象组合成树形结构以表示“部分 整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 基本代码 透明方式与安全方式 透明方式,也就是说在Component中声明所有用来管理子对象的方法,其中包括Add、Remove等,这样实现Component 阅读全文
posted @ 2019-12-13 16:34 微风吹过165 阅读(90) 评论(0) 推荐(0) 编辑