Carson帶你學設計模式:觀察者模式(Observer)

前言

今天Carson來全面總結最常用的設計模式 - 觀察者模式(Observer)。

其他設計模式介紹
這是一份全面 & 詳細的設計模式學習指南
Carson帶你學設計模式:單例模式(Singleton)
Carson帶你學設計模式:簡單工廠模式(SimpleFactoryPattern)
Carson帶你學設計模式:工廠方法模式(Factory Method)
Carson帶你學設計模式:抽象工廠模式(Abstract Factory)
Carson帶你學設計模式:策略模式(Strategy Pattern)
Carson帶你學設計模式:適配器模式(Adapter Pattern)
Carson帶你學設計模式:靜態代理模式(Proxy Pattern)
Carson帶你學設計模式:動態代理模式(Proxy Pattern)
Carson帶你學設計模式:模板方法模式(Template Method)
Carson帶你學設計模式:建造者模式(Builder Pattern)
Carson帶你學設計模式:外觀模式(Facade Pattern)
Carson帶你學設計模式:觀察者模式(Observer)


目錄


1. 模式說明

  • 定義對象間的一種一對多的依賴關系;
  • 當1個對象的狀態發生改變時,所有依賴于它的對象都將得到通知 & 自動更新對應操作。

又稱:發布 / 訂閱模式


2. 解決的問題

常變對象 與不常變對象之間存在依賴關系的前提下,不常變對象 需隨 常變對象經常改變邏輯的問題。即解耦 常變對象 與不常變對象之間的依賴關系

如:常變的UI層 與 基本不變的具體業務邏輯


3. 生活例子引入

我用一個生活例子引入 & 講解 觀察者模式的原理: 顧客到飯店吃飯

示意圖
流程圖

4. 原理介紹

4.1 UML類圖說明

觀察者模式中有4個角色

示意圖
示意圖

注:Java API有內置的觀察者模式類:java.util.Observable 類和 java.util.Observer 接口

對應: Subject 和 Observer 的角色;

4.2 具體原理說明

請結合上述 顧客到飯店吃飯 的生活例子理解:

示意圖

流程圖

即可總結為:被觀察者 (Observable) 通過 訂閱(Subscribe) 按順序發送事件 給觀察者 (Observer), 觀察者(Observer) 按順序接收事件 & 作出對應的響應動作。具體如下圖:(類似流水線般流動 & 處理。)

示意圖

至此,設計模式中的觀察者模式(Observer)講解完畢。


5. 總結

  • 本文對觀察者模式(Observer)的進行了全面介紹
  • 接下來我會對每種設計模式進行詳細的分析,歡迎關注Carson_Ho的簡書,不定期分享關于安卓開發的干貨,追求短、平、快,但卻不缺深度

請點贊!因為你的鼓勵是我寫作的最大動力!

相關文章閱讀
這是一份全面 & 詳細的設計模式學習指南
Carson帶你學設計模式:單例模式(Singleton)
Carson帶你學設計模式:簡單工廠模式(SimpleFactoryPattern)
Carson帶你學設計模式:工廠方法模式(Factory Method)
Carson帶你學設計模式:抽象工廠模式(Abstract Factory)
Carson帶你學設計模式:策略模式(Strategy Pattern)
Carson帶你學設計模式:適配器模式(Adapter Pattern)
Carson帶你學設計模式:靜態代理模式(Proxy Pattern)
Carson帶你學設計模式:動態代理模式(Proxy Pattern)
Carson帶你學設計模式:模板方法模式(Template Method)
Carson帶你學設計模式:建造者模式(Builder Pattern)
Carson帶你學設計模式:外觀模式(Facade Pattern)
Carson帶你學設計模式:觀察者模式(Observer)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容