第17章 Observer 模式
public abstract class NumberGenerator{private ArrayList observerList = new ArrayList();/* 部分代码省略 *///加入基础类,当需要通知的时候通知public void addObserver(Observer observer){observerList.add(observer);}public void notifyObserverList{Iterator it = observerList.iterator();while(it.hasNext()){Observer o = (Observer) o.next();o.update(this);}}
}
虽说是 观察,实际上是通知。所以 Observer 模式 也被称为 Publish-Subscribe (发布订阅模式)
Mediator 模式对比
两者类似,但是通知的目的和视角不同。
Mediator 主要是为了对 Colleague 角色进行仲裁。
而,Observer 模式是为了 Subject 和 Observer 角色进行同步。
第十八章 Memento 模式
这里作者假定了一个游戏,
通过摇色子决定下一个状态。
当 dice 为 1 的时候,gamer 金钱会增加
当 dice 为 2 的时候,gamer 金钱会减少
当 dice 为 6 的时候,gamer 会得到水果
gamer 没有钱的时候游戏就会结束。
这时候,我们就要在有增益的时候【 dice 为 1 】保存游戏状态。
当我们有损失的时候【 dice 为 2 】加载游戏状态。
其实我感觉这个 方法模式就是在说 状态的存储。通过第三方类来存储 游戏类里的一些关键状态。不再多赘述。
第19章 State 模式
其实就是让 DayState 和 NightState 分别去处理对应事件。
如果是正常开发的话,我们可能要使用 if 去判断时间,但是现在是分开处理了。不做过多赘述。