为了账号安全,请及时绑定邮箱和手机立即绑定

观察者模式,其中多个受试者调用一个观察者

观察者模式,其中多个受试者调用一个观察者

眼眸繁星 2022-09-14 17:15:25
我正在尝试制作一个简单的马里奥游戏。有了这个,我想要一个当a(马里奥的主要敌人)被杀时。经过一番研究,我研究了javalistenerGoombaObserver Pattern我做了这个interfacepublic interface GoombaDeathListener {    void onGoombaDeath(Goomba goomba);}接下来,我让自己成为我的classPlayerpublic class Player extends Entity implements GoombaDeathListener {    @Override    public void onGoombaDeath(Goomba goomba) {. . .}}我还做了一个Goomba classpublic class Goomba extends Entity {    ArrayList<GoombaDeathListener> deathListeners = new ArrayList<>();    public void onDeath() {        for (GoombaDeathListener listener : deathListeners) {            listener.onGoombaDeath(this);          }    }}我相信(不确定我是否完全理解这一点)这使得,我想要不止一个,这意味着我会有多个GoombaobserverGoombaArrayListsGoombaDeathListeners所以我有2个问题:我不理解什么,以及他们死后怎么能有多个()电话Observer PatternSubjectsGoombaonGoombaDeath(this)
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

我不理解观察者模式是什么

您是观察者。它是在可观察的可观察物上观察事件,你的.GoobmaDeathListenerGoomba

你可能想在这里看一个更详细的解释:https://stackoverflow.com/a/13744816/340088

我怎么能有多个受试者(古姆巴)调用古姆巴死亡(这个)当他们死亡时

好吧,每个(可观察的)都必须有一个对观察者列表的引用。最有可能的是,您希望在中间引入一个类,称为类似的东西,用于管理感兴趣的列表。它将提供一种方法,该方法在内部执行循环以调用 。GoombaGoombaObserversObserversnotifyGoombaDeath()onGoombaDeath()

您可能还想看看 Java 已经通过 Java.util.可观察提供了开箱即用的功能。


查看完整回答
反对 回复 2022-09-14
  • 1 回答
  • 0 关注
  • 68 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号