天天看點

【我要成為架構師 1.0------架構模式與設計模式的差別詳解】

架構模式與設計模式

區分

架構模式(Architecture Pattern)内可以用設計模式(Design Pattern),但設計模式内無法用架構模式。

例如

MVC架構模式

  • Model
    • 可以采用代理模式設計,data source(在Local端代理Remote(遠端)的服務,比如ContentProvider,跨程序索引資料,通過本程序的)
    • 資料庫連接配接時的橋接模式
    • 擷取伺服器資料流的 裝飾者模式
  • MVC的架構VC層可以用 觀察者模式 進行分發事件
  • View層,View與ViewGroup的 組合者模式,ListView的資料接口綁定的擴充卡模式

然而在上述的設計模式中采用 架構模式,都是不合常理的。 比如上述 代理模式内怎麼采用MVC?怎麼劃分出View?

類比

類比于建築行業

架構

多少個房間、多少個梯子、哪裡放空調

設計

室内設計,旋轉樓梯、直梯、扶梯,立式空調、

例子

架構模式 舉例

  • MVC、MVP、MVVM
  • Microservice
  • Peer-to-Peer
  • Event-driven architecture

設計模式

23種設計模式:

  • 組合模式
  • 單例
  • 指令

    等等

最後什麼是架構

  1. 解決一類的問題
  2. 達成共識

詳細

  • 是指在特定上下文中對 常見軟體架構中常見問題的 通用、可重用的解決方案。
  • 類似于軟體的設計模式(Softwar Design Pattern),但使用範圍(scope)更加廣泛。
  • Architecture Pattern用于解決軟體工程中的各種問題,例如
    • 計算機的硬體限制
    • 高可用性
      • (系統的特性:確定系統操作性高于一般水準)
    • 最低的商業風險

盡管AP(ArchitecturePattern)傳遞了系統的鏡像(image of system),但鏡像并不是AP,AP是一種理念,用于解決和描繪軟體架構的終于組成元素。不同的Architecture可能使用着相同的Pattern,并共享着相關的特性。Pattern被定義為“嚴格的描述和通用的了解性(Strictly described and commonly available)”。

  1. 解決一類的問題
  2. 達成共識

繼續閱讀