架構模式與設計模式
區分
架構模式(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種設計模式:
- 組合模式
- 單例
- 命令
等等
最後什麼是架構
- 解決一類的問題
- 達成共識
詳細
- 是指在特定上下文中對 常見軟件架構中常見問題的 通用、可重用的解決方案。
- 類似於軟件的設計模式(Softwar Design Pattern),但使用範圍(scope)更加廣泛。
- Architecture Pattern用於解決軟件工程中的各種問題,例如
- 計算機的硬件限制
- 高可用性
- (系統的特性:確保系統操作性高於一般水平)
- 最低的商業風險
儘管AP(ArchitecturePattern)傳遞了系統的鏡像(image of system),但鏡像並不是AP,AP是一種理念,用於解決和描繪軟件架構的終於組成元素。不同的Architecture可能使用着相同的Pattern,並共享着相關的特性。Pattern被定義爲“嚴格的描述和通用的理解性(Strictly described and commonly available)”。
- 解決一類的問題
- 達成共識