Header

《图解设计模式》 第八部分 管理状态

第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 去判断时间,但是现在是分开处理了。不做过多赘述。

posted @ 2024-11-05 13:24  大俗XD  阅读(0)  评论(0编辑  收藏  举报

Footer