Observer在ArrayList中通知新的最大值
问题描述:
我正在使用Java实现设计模式的桌面RPG角色创建器,但我似乎无法获得Observer的权利。Observer在ArrayList中通知新的最大值
这是我的程序所做的。
- 在启动时,它加载已经从一个文件夹中创建的所有字符并将它们保存在一个ArrayList
- 菜单为用户提供了一个选项,以推出新的字符统计并保存在ArrayList和作为一个文件上的字符文件夹
我希望我的观察,观察的ArrayList和当一个新的最高统计新角色创建(力量,敏捷通知我,等等)
请,如果有什么不清楚与我的问题让我知道!
答
您应该将字符列表存储在特定的类中,并使此类扩展Observable
类(JDK类或您自己的,如果您想具有更具体的语义)。
如果你创建自己的班级,你可以有两个班级: NewHighestCharacterObservable
和NewHighestCharacterObserver
。
的NewHighestCharacterObservable
类提供至少这两种方法来实现所图案:
- 的方法,以一个
NewHighestCharacterObserver
添加到它。
例如addObserver(NewHighestCharacterObserver)
。 - 一种通知
NewHighestCharacterObserver
的方法。
例如notifyObservers(Character newCharacterWithHigherStat)
。
它是notifyObservers()
,而不是notifyObserver()
,以便稍后多个观察者需要观察此可观察值时便于更改。
然后,被通知,让你的GUI可观察到通过实施NewHighestCharacterObserver
接口,提供一个方法来进行更新:
- onNewHighestCharacter(字符c)
这是方法由notifyObservers()
调用。
谢谢!我会尽力实现这一点! – langStrife