摘要:Java 设计模式系列(二三)访问者模式(Vistor) 访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。 一、访问者模式结构 访问者模式适用于数据结构相对未定的系统,它把数据结构和作用于结构上的
阅读全文
摘要:Java 设计模式系列(十五)观察者模式(Observer) Java 设计模式系列目录() 1. "Java 设计模式系列(十五)观察者模式(Observer)" 2. "Java 设计模式系列(十五)Spring 中的监听器模式" 观察者模式是对象的行为模式,又叫发布 订阅(Publish/Su
阅读全文
摘要:Java 设计模式系列(十八)备忘录模式(Memento) 备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外
阅读全文
摘要:Java 设计模式系列(二十)状态模式 状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。 一、状态模式的结构 用一句话来表述,状态模式把所研
阅读全文
摘要:Java 设计模式系列(十五)迭代器模式(Iterator) 迭代器模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。 一、实现自己的迭代器 每天用心记录一点点。内容也许不重要,但习
阅读全文
摘要:Java 设计模式系列(十三)模板方法 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。 一、模板方法的结构
阅读全文
摘要:Java 设计模式系列(十二)策略模式(Strategy) 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 一、策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和
阅读全文
摘要:Java 设计模式系列(二二)责任链模式 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下
阅读全文
摘要:Java 设计模式系列(十四)命令模式(Command) 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式属于对象的行为模式,又称为行动(Action)模式或交易(Transaction)模式
阅读全文
摘要:Java 设计模式系列(十七)中介者模式 用一个中介对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互 一、中介者模式结构 : 中介者接口。在里面定义各个同事之间交互需要的方法,可以是公共的通讯方法,比如changed方法,大家都用,
阅读全文
摘要:设计模式之美 代理模式 [toc] 设计模式之美目录: 代理模式:给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。GoF 的《设计模式》一书中把 RPC 称作远程代理。其它应用场景如缓存、监控、统计、鉴权、限流、事务、幂等、日志等。 1. 静态代理 很明显静态代理每个被代理的类都要手写
阅读全文
摘要:Java 设计模式系列(十)外观模式 门面模式(Facade):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。门面模式又称为外观模式,它是一种对象结构型模式。 一、外观模式结构 门面(Fa
阅读全文
摘要:Java 设计模式系列(十一)享元模式 Flyweight 享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。 一、享元模式的结构 享元模式采用一个共享来避免大量拥有相同内容对象的开销。这种开销最常见、最直观的就是内存的损耗。享元对象能做到共享的关键是区分内部状态(Inter
阅读全文
摘要:Java 设计模式系列(八)装饰者模式 装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。Decorator 或 Wrapper 一、装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在
阅读全文
摘要:Java 设计模式系列(九)组合模式 将对象组合成树形结构以表示“部分 整体”的层次结构。组合模式使得用户对单个对象的使用具有一致性。 一、组合模式结构 : 抽象的组件对象,为组合中的对象声明接口,让客户端可以通过这个接口来访问和管理整个对象结构,可以在里面为定义的功能提供缺省的实现。 : 叶子节点
阅读全文
摘要:设计模式之美 桥接模式 [toc] 设计模式之美目录: 桥接模式(Bridge):桥接模式不是很好理解,对于这个模式有两种不同的理解方式。但桥接模式并不常用,不是学习的重点。 在 GoF 的《设计模式》一书中,桥接模式被定义为:将抽象和实现解耦,让它们可以独立变化。 在其他资料和书籍中,还有另外一种
阅读全文
摘要:Java 设计模式系列(六)适配器模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式的结构: 1. 类的适配器模式 2. 对象的适配器模式 一、类适配器模式 类的适配器模式把适配的类的 API 转换成为目标类的 A
阅读全文
摘要:设计模式之美 原型模式 [toc] 设计模式之美目录: 原型模式:如果对象的创建成本比较大,可以基于已有的原型对象来创建新的对象。 对于熟悉 JavaScript 语言的前端程序员来说,原型模式是一种比较常用的开发模式。这是因为,有别于 Java、C++ 等基于类的面向对象编程语言,JavaScri
阅读全文
摘要:设计模式之美 生成器模式 [toc] 设计模式之美目录: Builder 模式,中文翻译为建造者模式或构建者模式或生成器模式。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式的原理和代码实现非常简单,掌握起来并不难,难点在于应用场景。在学习生成器模式的过程中,思
阅读全文
摘要:Java 设计模式系列(三)抽象工厂 每天用心记录一点点。内容也许不重要,但习惯很重要!
阅读全文