觀察者模式(也被稱為發(fā)布/訂閱模式),提供了避免組件之間緊密耦合的另一種方法,它將觀察者和被觀察的對象分開。在該模式中,一個對象通過添加一個方法(該方法允許另一個對象,即觀察者注冊自己)使本身變得可觀察。當可觀察的對象更改時,它會將消息發(fā)送到已注冊的觀察者。這些觀察者收到消息后所執(zhí)行的操作后所執(zhí)行的操作與可觀察的對象物無關,這種模式使得對象可以相互會話,而不必了解原因。Java語言與C#語言的時間機制采用的就是此種處理模式。
例如:用戶界面(同一個數(shù)據(jù)可以有多種不同的顯示方式)可以作為觀察者,業(yè)務數(shù)據(jù)是被觀察者,當數(shù)據(jù)有變化后會通知界面,界面收到通知后,會根據(jù)自己的顯示方式,修改界面的顯示。面相對象設計的一個原則是:系統(tǒng)中的每個類將重點放在某一個功能上,而不是其他方面。一個對象只做一件事情,并且將他做好。觀察者模式在模塊之間劃定了清晰的界限,提高了應用程序的可維護性和重用性。

本文來自博客園,作者:{不二一哥},轉載請注明原文鏈接:http://www.rzrgm.cn/yige888/p/17993299
浙公網(wǎng)安備 33010602011771號