我正在尝试制作一个简单的马里奥游戏。有了这个,我想要一个当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个赞
我不理解观察者模式是什么
您是观察者。它是在可观察的可观察物上观察事件,你的.GoobmaDeathListener
Goomba
你可能想在这里看一个更详细的解释:https://stackoverflow.com/a/13744816/340088
我怎么能有多个受试者(古姆巴)调用古姆巴死亡(这个)当他们死亡时
好吧,每个(可观察的)都必须有一个对观察者列表的引用。最有可能的是,您希望在中间引入一个类,称为类似的东西,用于管理感兴趣的列表。它将提供一种方法,该方法在内部执行循环以调用 。Goomba
GoombaObservers
Observers
notifyGoombaDeath()
onGoombaDeath()
您可能还想看看 Java 已经通过 Java.util.可观察
提供了开箱即用的功能。
添加回答
举报
0/150
提交
取消