所謂設計模式通俗點理解就是解決固定問題的套路。而提及觀察者模式又不得不提起客戶端框架設計中最經常使用的實現邏輯:MVC架構+觀察者模式。設計模式
MVC架構中的M、V、C分別是model、view、control的縮寫。架構
model:模型,處理數據邏輯部分框架
view:界面,處理數據顯示部分設計
control:控制器,模型和界面的溝通橋樑,負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。server
MVC架構是面向對象設計原則中「單一職責」的典型,將數據處理與界面實現徹底剝離開來,大大下降了代碼的耦合度,提升了代碼的複用性。而這樣作就產生了一個問題,如何可以有效的解決一旦數據層的數據發生變化就能及時通知到相應的主題界面。觀察者模式做爲一種傳遞消息的機制應用在MVC架構中就很好的彌補了這一不足。對象
觀察者模式(Observer)也叫訂閱——發佈模式,定義了一種「一對多」的依賴關係,主要目的就是爲了解決:當一個對象的狀態發生改變時能及時通知給其餘對象。具體關係如圖所示:model
舉個例子來講明,出版雜誌的雜誌社就是主題(發佈者),訂雜誌的客戶就爲訂閱者,客戶從雜誌社訂閱雜誌(訂閱主題)後,客戶都會收到雜誌社寄來的最新一期雜誌。若是客戶不想訂閱了,能夠取消,之後就不會再收到雜誌。im