第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

通知調(diào)用順序問題.

? ?List<String> list =new ArrayList<String>();

? ?list.add("1");

? ?list.add("2");

? ?list.add("3");

? ?list.add("4");

? ?list.add("5");

? ?for(String str:list){

? System.out.println(str);

? ?}

運行結(jié)果為1 2 3 4 5?


如果目標接口使用List集合來存儲觀察者列表,然后在notify()方法中循環(huán)遍歷觀察者列表,并進行通知,那么通知的順序不就是注冊觀察者時的順序嗎?為什么老師說理論上不行.

正在回答

2 回答

個人理解,是 這幾個觀察者之間沒有緊密的依賴關(guān)系!是平行的關(guān)系,或者是比較獨立的

0 回復 有任何疑惑可以回復我~

因為在Subject中提供了detach方法 ,如果把他從Subject的List中刪除掉再注冊的話順序就變了

0 回復 有任何疑惑可以回復我~
#1

莊學爸 提問者

如果這樣的話再注冊通知時仍然按照最后注冊的順序.老師這樣說應該是考慮到使用JAVA支持觀察者模式的實現(xiàn)方式,因為注冊觀察者列表時是使用AddObserver()方法.我看了源碼,Observable類中使用Vector向量來存放觀察者列表的,因此注冊觀察者時Vector中存放觀察者對象的順序是不確定,因此通知的順序也不確定.不像完全自定義的觀察者模式使用List接口.
2016-05-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

通知調(diào)用順序問題.

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號