通知 ArrayList 中新的最大值的观察者

Observer to notify new maximum values in ArrayList

我正在使用 Java 开发桌面角色扮演游戏角色创建器,它必须实现设计模式,但我似乎无法正确设置 Observer。

这就是我的程序所做的。

  1. 启动时,它会加载已从文件夹中创建的所有字符并将它们保存在 Arraylist 中
  2. 菜单让用户可以选择滚动新角色的统计数据并将它们保存在 Arraylist 中,并作为 Characters 文件夹中的文件

我希望我的观察者在 ArrayList 上进行观察,并在创建具有新的最高属性(力量、敏捷等)的新角色时通知我

如果我的问题有什么不清楚的地方,请告诉我!

您应该将字符列表存储在特定的 class 中,并使此 class 扩展 Observable class (JDK class 或者你自己的,如果你想有一个更具体的语义 )。
如果你创建自己的 classes 你可以有两个 classes : NewHighestCharacterObservableNewHighestCharacterObserver.

NewHighestCharacterObservableclass至少提供了这两种方法来实现模式:

  • 一种添加NewHighestCharacterObserver的方法。
    例如 addObserver(NewHighestCharacterObserver).
  • 一种通知 NewHighestCharacterObserver 更改的方法。
    例如 notifyObservers(Character newCharacterWithHigherStat).
    notifyObservers() 而不是 notifyObserver() 以便以后多个观察者需要观察此可观察对象时可以轻松更改。

然后,为了得到通知,通过实施提供更新方法的 NewHighestCharacterObserver 接口使您的 GUI 可观察:

  • onNewHighestCharacter(字符 c)

这是notifyObservers()调用的方法。