随笔分类 - java设计模式
描述设计模式相关概念,尽量配上必要的代码和图形说明
摘要:对于我而言,双分派是比较难的,难在第一次接触到这个概念,另外,用在什么场合也是一个绕人的问题。
阅读全文
摘要:门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面对(Facade)象进行。 迪米特法则:只与你直接的朋友们通信。 此设计模式需要一个设计不是很好的系统进行改造来进行对比Facade倒底做些什么。 以下为一个设计不是很好的系统: 可以看出,Client对象需要引用到所有的Camera,Light,Sensor,Alarm对象。Client必须对保安系统全知全能,这是一个不...
阅读全文
摘要:享元模式是对象的结构模式。 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State). 一个内蕴状态是存储在享元对象内部的,并且是不会随环境改变而有所不同的。因此,一个享元可以具有内蕴状态并可以共享。 一个外蕴状态是可随环境改变而改变的,不可以共享的状态。享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到享元对象内部。 外蕴状态不可以影响享元对象的内蕴状态。换句话说:它们是相互独立的。 单纯享元模式 复合享元模式 从上面的类图可以看出,在复合享元模式中,享.
阅读全文