亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

觀察者模式,其中多個受試者調用一個觀察者

觀察者模式,其中多個受試者調用一個觀察者

眼眸繁星 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 關注
  • 88 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號