JDK设计模式(十七)命令模式

1、概述 命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 2、解决的问题 用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。 3、模式中的角色 1、命令(Command)角色:定义命令的接口,声明执行的方法。 2、具体命令(ConcreteCommand)角色:命令接口实现对象,通常它会持有命令的接收者,通过 […]

JDK设计模式(十六)责任链模式

1、概述 责任链模式避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。 2、解决的问题 如果有多个对象都有可能接受请求,可以避免请求发送者与接收者耦合在一起。 3、模式中的角色 1、抽象处理者角色(Handler): 定义一个处理请求的接口,和一个后继连接(可选) 2、具体处理者角色(ConcreteHandler) […]

JDK设计模式(十五)迭代器模式

1. 概述 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 2. 解决的问题 把游走的任务放在迭代器上,而不是聚合上,这样简化了聚合的接口和实现,也让责任各得其所。 3. 模式中的角色 1、抽象迭代器(Iterator):定义出遍历元素所需的接口。 2、具体迭代器(ConcreteIterator):实现Iterator接口,并保持迭代过程中的游标位置。 3、聚集 […]

JDK设计模式(十四)观察者模式

1. 概述 有时被称作发布/订阅模式,观察者模式定义了对象之间的一对多的依赖关系,这样一来,当一个对象改变状态时,它的所有依赖着都会收到通知并自动更新。 2. 解决的问题 将一个系统分割成一个一些类相互协作的类有一个不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。观察者就是解决这类的耦合关系的。 3. 模式中的角色 1、 […]