架构模式与设计模式
区分
架构模式(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)”。
- 解决一类的问题
- 达成共识