摘要:
介绍 概念:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 应用场景:实体之间内部属性有差别,而且实体类型经常增加。他们的调用方式相同,但是调用的规则经常变化。 缺点:实体的特殊内容访问类需要知道。 代码: //实体基类 package n 阅读全文
摘要:
介绍 概念:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 应用场景:实体之间内部属性有差别,而且实体类型经常增加。他们的调用方式相同,但是调用的规则经常变化。 缺点:实体的特殊内容访问类需要知道。 代码: //实体基类 package n 阅读全文
摘要:
介绍 概念:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 应用场景:语言解释器(把我们能看懂的代码转换成了难看懂的机器码) 好处:以简单的方式使用复杂的东西。 例子 //解释器 package note.com.interpreter; /** * 阅读全文
摘要:
介绍 概念:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 应用场景:不同功能的模块之间调用关系复杂,耦合度高,不利于修改时使用。 好处:降低耦合,模块独立。 坏处:中介者业务复杂,不易维护。 代码: //定义模块抽象类 阅读全文
摘要:
介绍 概念:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 应用场景:用户主动切换执行规则,比如 画图工具,不同的工具执行的事件效果不同. 压缩工具的格式,不同的格式执行不同的压缩算法. 好处:扩展容易,不会破坏原有的结构,遵循开闭原则。 阅读全文
|