首页 > 其他分享 >《图解设计模式》 第八部分 管理状态

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

时间:2024-11-05 13:20:26浏览次数:2  
标签:状态 图解 dice Observer 第八 模式 gamer 设计模式 observerList

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

标签:状态,图解,dice,Observer,第八,模式,gamer,设计模式,observerList
From: https://www.cnblogs.com/dasuxd/p/18527629

相关文章

  • 常见设计模式-工厂模式
    文章目录1.简单工厂模式2.工厂方法模式3.抽象工厂模式设计模式七大原则工厂模式是一种创建型设计模式,它提供了一种创建对象的接口,但由子类决定要实例化的类是哪一个。工厂模式让一个类的实例化延迟到其子类。工厂模式主要分为三种:简单工厂模式、工厂方法模式......
  • 《图解设计模式》 第七部分 简单化
    Facade模式publicclassMain{publicstaticvoidmain(String[]args){PageMaker.makeWelcomePage("[email protected]","welcom.html");}}publicclassPageMaker{publicstaticvoidmakeWelcompage(Stringmailaddr,Stringfile......
  • 《图解设计模式》 第五部分 访问数据结构
    第十三章Visotor模式publicclassfileextendsentry{/*省略*/puhblicvoidaccept(Visitorv){v.visit(this);}}publicclassMain{publicstaticvoidmain(Stringargs){Directoryrootdir=newDirctory("root");/*省略*/ro......
  • 《图解设计模式》 第五部分 一致性
    第11章Composite模式文中举例文件夹系统,简单说明:这里可以讲File和dirctory看作一种东西Entry。在Entry的基础上分化两者,构成结构。能够使容器与内容具有一致性,创造出递归结构。第12章Decorator模式publicclassMain{publicstaticvoidmain(String[]ar......
  • 设计模式小结一策略(strategy)模式
    先上结论:    一个不懂设计模式的程序员,是绝对写不好程序代码的,心中没有设计模式的概念,你写出代码,内行一看就是个草台班子。这篇文章仅是个人设计模式学习的一篇笔记,算是抛砖引玉,详细的概念和用法还需要自己敲代码一个个验证体会。开干!一、程序设计的基本原则:1、封......
  • 《图解设计模式》 第三部分 生成实例
    第五章Singleton模式单例模式应该是开发中用的比较多的模式。这里我只记一个知识点。多线程下安全的单例模式的一个知识点publicclassSingleton{publicstaticInstanceClassinstance=null;publicstaticSingletongetInstance(){if(instance==null){......
  • MySQL8.0安装配置教程【超级详细图解】
    万分感谢.参考文章内容:https://blog.csdn.net/m0_73442728/article/details/131359479万分感谢.参考文章内容:https://blog.csdn.net/qq_40187702/article/details/130618805目录**一、MySQL下载与安装二、MySQL安装三、MySQL连接测试四、配置环境变量一、MySQL下载与安......
  • 《图解设计模式》 第一部分,适应设计模式
    第一章Iterator模式--一个一个遍历为什么要使用Iterator模式?正常遍历我们使用for循环即可,为什么要在集合引入Iterator这个角色呢?egwhile(it.hasNext()){Bookbook=(Book)it.next();System.out.println(book.getName());}这里的while循环并不依赖于Boo......