架構模式與設計模式
區分
架構模式(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)”。
- 解決一類的問題
- 達成共識