天天看点

【我要成为架构师 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. 达成共识

继续阅读