數據抽象/面向對象模式 與 基於事件的模式

1、面向對象模式

示意圖

在這裏插入圖片描述

面向對象模型

  • 封裝
  • 繼承
  • 多態性

優缺點

優點:

  • 隱藏內部實現,容易修改
  • 問題分解
  • 重用

缺點:

  • 對一個對象身份的依賴性 (顯示調用,即調用一個方法必須以:方法名.對象名的方式進行調用),意爲着對象得名稱發生改變,就無法運行相應的代碼。
  • 繼承往往使得設計變得複雜,引入得多層獨享結構使得維護困難

2、基於事件的模式

針對面向對象模式的缺點,尤其對一個對象身份的依耐性,可採用此模式。
概念: 對象之間通過方法調用進行交互,但是調用是隱式的,通過事件機制進行調用觸發。

  • 對象可以發佈(廣播)事件
  • 對象也可以通過事件註冊將某個方法和事件進行綁定
    • 一旦該事件觸發,所有與該事件綁定的方法都將被調用

優點:

  • 問題分解
    將計算和交互相分離,使得對象更加獨立
  • 系統演化和重用
    通過事件註冊,新的組件可以輕易得被引入系統

缺點:

  • 組件不能控制系統進行的計算
    當一個組件發佈事件的時候,它無法假設其他組件會對該事件作出響應
  • 對事件觸發的方法調用的次序無法控制
  • 對事件觸發的方法調用的次序無法控制
  • 數據交換
    大數據量的數據交互往往沒法由事件攜帶,從而帶來性能問題
  • 可能會對正確性的保證帶來困難
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章