摘要:
享元模式 通过对象的复用来减少对象创建的次数和数量,以减少系统内存的使用和降低系统的负载。在系统需要一个对象时,享元模式首先在系统中查找并尝试重用现有的对象,如果未找到匹配的对象,则创建新对象并将其缓存在系统中以便下次使用。 (1)定义Memory public class Memory{ priv 阅读全文
摘要:
解释器模式给定一种语言,并定义该语言的语法表示,然后设计一个解析器来解释语言的语法,这种模式长用于SQL解析、符号处理引擎等。 正则表达式解释器: (1)定义Expression public interface Expression { public void interpret(Context 阅读全文
摘要:
中介者模式 对象和对象直接不直接交互,而是通过一个中介者来实现对象之间的交互。使原有对象之间的关系变得松散,且可以通过定义不同的中介者来改变他们之间的交互。 (1)定义房东 public class Landlord{ private final static Log logger = LogFac 阅读全文
摘要:
访问者模式将数据和对数据的操作分离开来,使其在不改变数据结构的前提下动态添加作用于这些元素上的操作。它将数据结构的定义和数据操作的定义分离开来,符合“单一职责”原则。访问者模式通过定义不同的访问者实现对数据的不同操作,因此在需要给数据添加新的操作时只需为其定义一个新的访问者即可。 适用于数据结构稳定 阅读全文
摘要:
备忘录模式 将当前对象的内部状态保存到备忘录中,以便在需要时能将改对象的状态恢复到原先保存的状态。 (1)定义备忘录 public class Memento{ private String value; public Memento(String value){ this.value = valu 阅读全文
摘要:
命令模式将命令调用者与命令执行者解耦,有效降低系统的耦合度。同时,由于命令调用者和命令执行者进行了解耦,所以增加和删除命令变得非常方便。 (1)定义Command接口 public interface Command{ public void exe(String command); } (2)定义 阅读全文
摘要:
责任链模式是一种非常有趣的模式。 责任链模式用于避免请求发送者与多个请求处理者耦合在一起,让所有请求的处理者持有下一格对象的引用,从而将请求串联成一条链,在有请求发生时,可将请求沿着这条链传递,直到遇到该对象的处理器。 (1)定义处理接口 public interface Handler{ void 阅读全文
摘要:
迭代器模式提供了顺序访问集合对象中的各种元素,而不暴露该对象的内部结构的方法。 (1)定义集合 public interface Collection{ public Iterator iterator(); public Object get(int i); public boolean add( 阅读全文
摘要:
又叫发布-订阅者模式,或者模型-视图模式。 在被观察者的状态发生变化时,系统基于事件驱动理论将其状态通知到订阅其状态的观察者对象中,以完成状态的修改和事件传播。 (1)定义抽象主题 public abstract class Subject{ protected List<Observer> obs 阅读全文