2017-07-17 38 views
-2

我正在使用Java实现设计模式的桌面RPG角色创建器,但我似乎无法获得Observer的权利。Observer在ArrayList中通知新的最大值

这是我的程序所做的。

  1. 在启动时,它加载已经从一个文件夹中创建的所有字符并将它们保存在一个ArrayList
  2. 菜单为用户提供了一个选项,以推出新的字符统计并保存在ArrayList和作为一个文件上的字符文件夹

Picture of my program's Class Diagram

我希望我的观察,观察的ArrayList和当一个新的最高统计新角色创建(力量,敏捷通知我,等等)

请,如果有什么不清楚与我的问题让我知道!

回答

1

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

NewHighestCharacterObservable类提供至少这两种方法来实现所图案:

  • 的方法,以一个NewHighestCharacterObserver添加到它。
    例如addObserver(NewHighestCharacterObserver)
  • 一种通知NewHighestCharacterObserver的方法。
    例如notifyObservers(Character newCharacterWithHigherStat)
    它是notifyObservers(),而不是notifyObserver(),以便稍后多个观察者需要观察此可观察值时便于更改。

然后,被通知,让你的GUI可观察到通过实施NewHighestCharacterObserver接口,提供一个方法来进行更新:

  • onNewHighestCharacter(字符c)

这是方法由notifyObservers()调用。

+0

谢谢!我会尽力实现这一点! – langStrife