課程
/后端開發(fā)
/Java
/觀察者模式
誰有課程代碼?
2017-12-24
源自:觀察者模式 2-3
正在回答
package?dyl.study.observer; import?java.util.Observable; public?class?ConcreteWeatherSubject?extends?Observable?{ //天氣情況的內(nèi)容 private?String?content; public?String?getContent()?{ return?content; } public?void?setContent(String?content)?{ this.content?=?content; this.setChanged(); this.notifyObservers(content);?//推方式 } }
package?dyl.study.observer; import?java.util.Observable; import?java.util.Observer; //具體的觀察者對象 public?class?ConcreteObserver?implements?Observer?{ private?String?observerName; @Override public?void?update(Observable?o,?Object?arg)?{ //推方式 System.out.println(observerName+"收到了"+arg); //拉方式 System.out.println(observerName+"收到了消息,主動到目標(biāo)對象那去取得數(shù)據(jù),取得的數(shù)據(jù)為:"+((ConcreteWeatherSubject)o).getContent()); } public?String?getObserverName()?{ return?observerName; } public?void?setObserverName(String?observerName)?{ this.observerName?=?observerName; } }
package?dyl.study.observer; public?class?Client?{ public?static?void?main(String[]?args)?{ ConcreteWeatherSubject?subject?=?new?ConcreteWeatherSubject(); ConcreteObserver?p1?=?new?ConcreteObserver(); ConcreteObserver?p2?=?new?ConcreteObserver(); p1.setObserverName("我"); p2.setObserverName("你"); subject.addObserver(p1); subject.addObserver(p2); subject.setContent("QQ天氣:【某地】陰7°/10°,09:05更新~"); } }
SapereAudor 提問者
舉報
解決發(fā)布/訂閱問題的觀察者模式,以及何時使用觀察者模式
1 回答課程有附代碼嗎?
4 回答源代碼在哪?
2 回答誰能告訴我。。。這個模式究竟有什么用處?我是認真的。。。。
5 回答都看完了,還沒有提供源碼
4 回答第四章媽媽和女友訂閱不同的天氣狀態(tài),我有更好的解答,核心代碼在下面,就是重寫notifyObserver()方法用三層for循環(huán)。我太聰明了!
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-12-28