定義

   定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。

   Observer模式描述了如何建立這種關(guān)系。這一模式中的關(guān)鍵對象是目標(subject)和觀察者(observer)。一個目標可以有任意數(shù)目的依賴它的觀察者。一旦目標的狀態(tài)發(fā)生改變,所有的觀察者都得到通知。這種交互也稱為發(fā)布-訂閱(publish-subscribe)。目標是通知的發(fā)布者。故觀察者模式又名 依賴(Dependents),發(fā)布-訂閱(Publish-Subscribe)。

 適用場景

 以下任何一種情況可以使用觀察者模式:

  • 當(dāng)一個抽象模型有兩個方面,其中一個方面依賴于另一個方面。將這兩者封裝在獨立的對象中以使它們可以各自獨立地改變和復(fù)用。

  • 當(dāng)對一個對象的改變需要同時改變其它對象,而不知道具體有多少對象有待改變。

  • 當(dāng)一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之,你不希望這些對象是緊密耦合的。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式