我正在嘗試制作一個簡單的馬里奧游戲。有了這個,我想要一個當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
提交
取消