Java 观察员通知ArrayList中的新最大值

Java 观察员通知ArrayList中的新最大值,java,arraylist,observer-pattern,Java,Arraylist,Observer Pattern,我正在用Java开发一个桌面RPG角色生成器,它必须实现设计模式,但我似乎不能正确地使用Observer 这就是我的程序所做的 启动时,它将加载已从文件夹中创建的所有字符,并将它们保存在Arraylist中 菜单为用户提供了一个选项,可以滚动新角色的统计信息,并将其保存在Arraylist和characters文件夹中的文件中 我希望我的观察者在ArrayList上观察,并在创建具有新的最高属性(力量、灵巧度等)的新角色时通知我。 如果我的问题不清楚,请告诉我 您应该将字符列表存储在一个特定的

我正在用Java开发一个桌面RPG角色生成器,它必须实现设计模式,但我似乎不能正确地使用Observer

这就是我的程序所做的

  • 启动时,它将加载已从文件夹中创建的所有字符,并将它们保存在Arraylist中
  • 菜单为用户提供了一个选项,可以滚动新角色的统计信息,并将其保存在Arraylist和characters文件夹中的文件中
  • 我希望我的观察者在ArrayList上观察,并在创建具有新的最高属性(力量、灵巧度等)的新角色时通知我。


    如果我的问题不清楚,请告诉我

    您应该将字符列表存储在一个特定的类中,并使该类扩展一个
    可观察的
    类(JDK类或您自己的类,如果您想要更具体的语义)。
    如果创建自己的类,则可以有两个类:
    NewHighestCharacterObservable
    NewHighestCharacterObservable

    NewHighestCharacterObservable
    类提供了至少两种实现模式的方法:

    • 一种向其添加
      NewHighestCharacterObserver
      的方法。
      例如
      addObserver(NewHighestCharacterObserver)
    • 通知
      NewHighestCharacterObserver
      s更改的方法。
      例如
      notifyobserver(Character newCharacterWithHigherStat)

      它是
      notifyObserver()
      而不是
      notifyObserver()
      ,以便在以后多个观察者需要观察此可观察对象时易于更改
    然后,需要注意的是,通过实现
    NewHighestCharacterObserver
    界面使GUI成为可观察的,该界面提供了要更新的方法:

    • ONNEWHIGHEST字符(字符c)

    这是由
    notifyobservators()
    调用的方法,谢谢!我会努力实现这一点!