通知 ArrayList 中新的最大值的观察者
Observer to notify new maximum values in ArrayList
我正在使用 Java 开发桌面角色扮演游戏角色创建器,它必须实现设计模式,但我似乎无法正确设置 Observer。
这就是我的程序所做的。
- 启动时,它会加载已从文件夹中创建的所有字符并将它们保存在 Arraylist 中
- 菜单让用户可以选择滚动新角色的统计数据并将它们保存在 Arraylist 中,并作为 Characters 文件夹中的文件
我希望我的观察者在 ArrayList 上进行观察,并在创建具有新的最高属性(力量、敏捷等)的新角色时通知我
如果我的问题有什么不清楚的地方,请告诉我!
您应该将字符列表存储在特定的 class 中,并使此 class 扩展 Observable
class (JDK class 或者你自己的,如果你想有一个更具体的语义 )。
如果你创建自己的 classes 你可以有两个 classes :
NewHighestCharacterObservable
和 NewHighestCharacterObserver
.
NewHighestCharacterObservable
class至少提供了这两种方法来实现模式:
- 一种添加
NewHighestCharacterObserver
的方法。
例如 addObserver(NewHighestCharacterObserver)
.
- 一种通知
NewHighestCharacterObserver
更改的方法。
例如 notifyObservers(Character newCharacterWithHigherStat)
.
notifyObservers()
而不是 notifyObserver()
以便以后多个观察者需要观察此可观察对象时可以轻松更改。
然后,为了得到通知,通过实施提供更新方法的 NewHighestCharacterObserver
接口使您的 GUI 可观察:
- onNewHighestCharacter(字符 c)
这是notifyObservers()
调用的方法。
我正在使用 Java 开发桌面角色扮演游戏角色创建器,它必须实现设计模式,但我似乎无法正确设置 Observer。
这就是我的程序所做的。
- 启动时,它会加载已从文件夹中创建的所有字符并将它们保存在 Arraylist 中
- 菜单让用户可以选择滚动新角色的统计数据并将它们保存在 Arraylist 中,并作为 Characters 文件夹中的文件
我希望我的观察者在 ArrayList 上进行观察,并在创建具有新的最高属性(力量、敏捷等)的新角色时通知我
如果我的问题有什么不清楚的地方,请告诉我!
您应该将字符列表存储在特定的 class 中,并使此 class 扩展 Observable
class (JDK class 或者你自己的,如果你想有一个更具体的语义 )。
如果你创建自己的 classes 你可以有两个 classes :
NewHighestCharacterObservable
和 NewHighestCharacterObserver
.
NewHighestCharacterObservable
class至少提供了这两种方法来实现模式:
- 一种添加
NewHighestCharacterObserver
的方法。
例如addObserver(NewHighestCharacterObserver)
. - 一种通知
NewHighestCharacterObserver
更改的方法。
例如notifyObservers(Character newCharacterWithHigherStat)
.
notifyObservers()
而不是notifyObserver()
以便以后多个观察者需要观察此可观察对象时可以轻松更改。
然后,为了得到通知,通过实施提供更新方法的 NewHighestCharacterObserver
接口使您的 GUI 可观察:
- onNewHighestCharacter(字符 c)
这是notifyObservers()
调用的方法。