1. 程式人生 > >ios之觀察者模式

ios之觀察者模式

什麼是觀察者模式?我們先打個比方,這就像你訂報紙。比如你想知道美國最近發生了些什麼新聞。你可能會訂閱一份美國週刊 。然後美國一旦有了新的故事,美國週刊就發一刊,並郵寄給你。當你收到這份報刊,然後你就能夠了解美國最新的動態。其實這就是觀察者模式,A對B的變化感興趣,就註冊為B的觀察者,當B發生變化時通知A,告知B發生了什麼變化。這是一種非常典型的觀察者的用法,我把這種使用方法叫做經典觀察者模式。當然與之相對的還有另外一種觀察者模式----廣義觀察者模式


從經典的角度看,觀察者模式是一種通知變化的模式,一般認為只在物件發生變化感興趣的場合有用,主題物件知道有觀察者存在,設定會維護觀察者的一個佇列:而從廣義的角度看,觀察者模式,需要檢視物件屬性時就會使用的一種模式。主題物件不知道觀察者的存在,更像是圍觀者,需要知道主題物件的狀態,所以即使在主題物件沒有發生改變的時候,觀察者也可能會去訪問主題物件。換句話說廣義觀察者模式,是在不同的物件之間傳遞資料的一種模式。


觀察者模式應當是面向物件程式設計中被大規模使用的設計模式之一,從方法論的角度來說,傳統的認知論認為,世界是由物件組成的,我們通過不停的觀察和了解就能夠物件的本質。整個人類認知模式就是建立在“觀察”這種之上的我們通過不停的與其他物件互動,並通過觀察其他例項的變化做出響應,以完成功能。這也就是,為什麼會把觀察者模式單獨提出來,做一個專一的剖析的原因----在我看來他是很多其他設計模式的基礎模式,並且是程式設計中及其重要的一種設計模式