摘要:
解释器模式设计原则:遵循单一职责常用场景:有一种语言被频繁的使用使用概率:0.00009%复杂度:中高变化点:语言的规则选择关键点:被频繁使用的语言是否可用文法表示逆鳞:语言的规则无限制增长或规则十分不稳定主要思想:一般主要应用在OOP开发中的编译器的开发比如正则的匹配,spring典型的调度任务中的expression表达式的解析 public interface Expression { ...
阅读全文
posted @ 2017-11-07 19:06
zjj911
阅读(234)
推荐(0)
编辑
摘要:
中介者模式设计原则:遵循迪米特,破坏单一职责常用场景:一个系列的对象交互关系十分复杂使用概率:10%复杂度:中变化点:对象之间的交互选择关键点:复杂的交互关系是否有共性可被中介者承担逆鳞:中介者无法工作主要思想:租房子找中介,这样就和房东没什么直接关系了,我有事也不用麻烦房东,房东有事也不找我即两个对象需要有关系,但是类中不定义和依赖,而是把这种关系找一个中介类去维护比如我是 租房的类 我要找房...
阅读全文
posted @ 2017-11-07 18:58
zjj911
阅读(194)
推荐(0)
编辑
摘要:
访问者模式设计原则:遵循倾斜的开闭原则常用场景:作用于一个数据结构之上的操作经常变化使用概率:5%复杂度:高变化点:数据结构之上的操作选择关键点:数据结构是否稳定以及操作是否经常变化逆鳞:数据结构的不稳定常用场景:假如一个对象中存在着一些与本对象不相干(或者关系较弱)的操作,为了避免这些操作污染这个对象,则可以使用访问者模式来把这些操作封装到访问者中去。假如一组对象中,存在着相似的操作,为了避免出...
阅读全文
posted @ 2017-11-07 18:40
zjj911
阅读(139)
推荐(0)
编辑
摘要:
状态模式设计原则:遵循单一职责、依赖倒置、开闭原则常用场景:一个对象在多个状态下行为不同,且这些状态可互相转换使用概率:20%复杂度:中变化点:状态的种类选择关键点:这些状态是否经常在运行时需要在不同的动态之间相互转换逆鳞:无相关设计模式策略模式:二者的实现方式非常相似,策略接口与状态接口,具体的策略与具体的状态以及二者都拥有的上下文,如果看它们的类图,会发现几乎一模一样,而二者不同的地方就在于,...
阅读全文
posted @ 2017-11-07 16:31
zjj911
阅读(134)
推荐(0)
编辑
摘要:
备忘录模式设计原则:遵循迪米特、开闭原则常用场景:需要在对象的外部保存该对象的内部状态使用概率:5%复杂度:中变化点:无选择关键点:是否可以在必要的时候捕捉到对象的内部状态逆鳞:大对象的备份主要思想:简单理解就是把对象的变化保存起来进行备份,可以恢复简单实现在每次对象属性变化前把属性存起来,或者暴力的直接深克隆对象,然后把对象存起来. public class Person { priv...
阅读全文
posted @ 2017-11-07 16:24
zjj911
阅读(120)
推荐(0)
编辑
摘要:
命令模式设计原则:遵循迪米特、开闭原则常用场景:行为的请求者与行为的处理者耦合度过高使用概率:20%复杂度:中高变化点:命令的种类选择关键点:请求者是否不需要关心命令的执行只知道接受者逆鳞:命令的种类无限制增长相关设计模式职责链模式:容易将二者关联在一起的原因是,二者都是为了处理请求或者命令而存在的,而且二者都是为了将请求者与响应者解耦,不同的是命令模式中,客户端需要知道一个命令的接受者,在创建命...
阅读全文
posted @ 2017-11-07 12:11
zjj911
阅读(136)
推荐(0)
编辑
摘要:
责任链模式设计原则:遵循迪米特常用场景:一个请求的处理需要多个对象当中的一个或几个协作处理使用概率:15%复杂度:中变化点:处理链的长度与次序选择关键点:对于每一次请求是否每个处理的对象都需要一次处理机会逆鳞:无主要思想:有点类似黑盒测试,只知道现在有一个方法需要调用,但是调用到哪,谁最终完成了这个方法以及怎么完成的不知道所谓责任链指这里的拥有这个处理方法的类有很多,但是处理需要一定的条件,比如最...
阅读全文
posted @ 2017-11-07 11:51
zjj911
阅读(165)
推荐(0)
编辑