新聞動態(tài)
獸用B超系統(tǒng)觀察者設(shè)計模式用來定義對象間的一種一對多的依賴關(guān)系,當一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。將一個系統(tǒng)分割成一系列相互協(xié)作的類有一個常見的副作用:需要維護相關(guān)對象間的一致性。開發(fā)人員不希望為了維持一致性而使各類緊密耦合,因為這樣降低了它們的可重用性。
獸用B超系統(tǒng)在以下任一情況下可以使用觀察者模式:
1、當一個抽象模型有兩個方面, 其中一個方面依賴于另一方面。將這二者封裝在獨立的對象中以使它們可以各自獨立地改變和復用。
2、當對一個對象的改變需要同時改變其它對象, 而不知道具體有多少對象有待改變。
3、當一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之,你不希望這些對象是緊密耦合的。
獸用B超系統(tǒng)這一模式中的關(guān)鍵對象是目標和觀察者。一個目標可以有任意數(shù)目的依賴它的觀察者。一旦目標的狀態(tài)發(fā)生改變, 所有的觀察者都得到通知。作為對這個通知的響應(yīng),每個觀察者都將查詢目標以使其狀態(tài)與目標的狀態(tài)同步。這種交互也稱為發(fā)布-訂閱。目標是通知的發(fā)布者。它發(fā)出通知時并不需知道誰是它的觀察者。可以有任意數(shù)目的觀察者訂閱并接收通知。
http://xzh.i3geek.com