1、面向對象模式
示意圖
面向對象模型
- 封裝
- 繼承
- 多態性
優缺點
優點:
- 隱藏內部實現,容易修改
- 問題分解
- 重用
缺點:
- 對一個對象身份的依賴性 (顯示調用,即調用一個方法必須以:方法名.對象名的方式進行調用),意爲着對象得名稱發生改變,就無法運行相應的代碼。
- 繼承往往使得設計變得複雜,引入得多層獨享結構使得維護困難
2、基於事件的模式
針對面向對象模式的缺點,尤其對一個對象身份的依耐性,可採用此模式。
概念: 對象之間通過方法調用進行交互,但是調用是隱式的,通過事件機制進行調用觸發。
- 對象可以發佈(廣播)事件
- 對象也可以通過事件註冊將某個方法和事件進行綁定
- 一旦該事件觸發,所有與該事件綁定的方法都將被調用
優點:
- 問題分解
將計算和交互相分離,使得對象更加獨立 - 系統演化和重用
通過事件註冊,新的組件可以輕易得被引入系統
缺點:
- 組件不能控制系統進行的計算
當一個組件發佈事件的時候,它無法假設其他組件會對該事件作出響應 - 對事件觸發的方法調用的次序無法控制
- 對事件觸發的方法調用的次序無法控制
- 數據交換
大數據量的數據交互往往沒法由事件攜帶,從而帶來性能問題 - 可能會對正確性的保證帶來困難