JAVA面向对象与设计模式 - 图文 下载本文

3.3.2 Iterator(迭代器):适用性与参与者适用性:

? 访问一个聚合对象的内容而无需暴露它的内部表示。? 支持对聚合对象的多种遍历。

? 为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)。参与者:

? Iterator(迭代器)—迭代器定义访问和遍历元素的接口。? ConcreteIterator(具体迭代器)—具体迭代器实现迭代器接口。

—对该聚合遍历时跟踪当前位置。

? Aggregate(聚合)—聚合定义创建相应迭代器对象的接口。? ConcreteAggregate(具体聚合)—具体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例。

3.3.2Iterator模式的UML类图

3.3.3 Observer(观察者)—对象行为型模式1. 意图

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。举例:“半夜,猫大叫一声,主人被惊醒,老鼠四散而逃。”

2. 别名

依赖(Dependents), 发布-订阅(Publish-Subscribe)3. 动机

将一个系统分割成一系列相互协作的类有一个常见的副作用:需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,因为这样降低了它们的可重用性。

这一模式中的关键对象是目标( s u b j e c t )和观察者( o b s e r v e -r )。一个目标可以有任意数目的依赖它的观

3.3.3 Observer(观察者)—对象行为型模式1. 意图

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。举例:“半夜,猫大叫一声,主人被惊醒,老鼠四散而逃。”

2. 别名

依赖(Dependents), 发布-订阅(Publish-Subscribe)3. 动机

将一个系统分割成一系列相互协作的类有一个常见的副作用:需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,因为这样降低了它们的可重用性。

这一模式中的关键对象是目标( s u b j e c t )和观察者( o b s e r v e -r )。一个目标可以有任意数目的依赖它的观