1. 程式人生 > >【從零開始學架構-李運華】06|複雜地來源:可擴充套件性

【從零開始學架構-李運華】06|複雜地來源:可擴充套件性

可擴充套件性指系統為了應對將來需求的變化而提供的一種擴充套件能力,新需求出現時系統不需要或者僅需要少量修改就可以支援,無需整個系統重構或者重建。
面向物件就是為了解決可擴充套件性,後來的設計模式更是將可擴充套件性做到了極致。

具備良好擴充套件性的兩個基本條件:正確預測變化、完美封裝變化。

預測變化

架構師需要預測,但預測本身就存在不確定性複雜性在於:

  • 不能每個設計點都考慮可擴充套件性
  • 不能完全不考慮可擴充套件性
  • 所有的預測都存在出錯的可能性

應對變化方案一

這裡寫圖片描述

將“變化”封裝在“變化層”,將不變的部分封裝在獨立的“穩定層”。

例一:接受資料格式的擴充套件
這裡寫圖片描述

例二:資料庫型別的擴充套件
這裡寫圖片描述

問題:

  1. 對兩個層的拆分
  2. 設計兩個層間的介面

應對變化方案二

提煉出一個“抽象層”和一個“實現層”

這裡寫圖片描述

有23種設計模式