概念:觀察者模式定義了一對(duì)多依賴,這樣一來(lái),當(dāng)一個(gè)對(duì)象改變狀態(tài)時(shí),它的所有依賴者都會(huì)收到通知并自動(dòng)更新。
舉個(gè)網(wǎng)上商城的例子,比如很多顧客對(duì)某個(gè)商品感興趣,把商品收藏,當(dāng)該商品降價(jià)、促銷(xiāo)、有貨了等事件發(fā)生時(shí),就會(huì)發(fā)Email通知顧客。
UML圖如下:
ItemObserver的代碼如下:



Customer代碼如下:






























































ItemObservable代碼如下:







Item代碼如下:



































另外:Java的util包提供了Observer接口和Observable接口支持這個(gè)模式。