架构模式
架构模式
什么是架构
架构是对大型软件系统最高级别的设计
- 架构从整体到部分的最高层次的划分
- 架构一旦选定以后将难以更改
什么是模式
- 模式是在软件实践活动中总结的有效、通用且能解决重复出现的问题的解决方案
- 每个模式描述了一个在某种场景下不断重复发生的问题,以及该问题解决方案的核心
模式 = 套路
模式的关键点是源于软件实践
模式(Pattern)的概念最早由建筑大师 Alexander 于 20 世纪 70 年代提出,应用于建筑领域。80 年代中期由 Ward Cunningham 和 Kent Back将 其思想引入到软件领域,如今模式已成为软件工程领域的重要议题
什么是架构模式
架构模式(也叫架构风格)是一个通用的、可重用的解决方案,用于解决在给定上下文中的最高级别软件体系结构设计中经常出现的问题
通用软件设计思想 - 分层设计
在进行大型复杂软件系统架构设计和开发时,软件架构师使用得最多的技术之一就是分层的设计思想(分而治之)
分层的特点
- 上层使用下层定义的服务
- 下层不能使用上层定义的服务
- 每一层对自己的上层隐藏其下层的实现细节
分层的优点
- 降低软件系统构件之间的耦合度,实现“低耦合、高内聚”原则
- 提升系统灵活性,可以在接口相同的情况下替换某层的具体实现
- 可以增强复用度,下层可以为多个上层提供服务
分层的缺点
- 过多的分层会影响系统性能
- 分层可能会带来各层的级联修改
三层架构模式
三层架构模式是软件架构设计中通用的一种架构模式,采用的分层设计思想,将软件系统架构分为三层(即表现层、业务层、持久层)
使用场景
大型复杂软件系统设计和开发
- 业务繁多逻辑复杂
- 需要团队协作开发
- 需要长期升级维护
优点
- 每一层职责划分清晰,可以更容易对复杂系统业务进行拆分
- 工作任务分工明确,有利于展开多人团队协作开发
- 有利于维护管理代码,更方便问题定位
- 方便系统长期维护升级
缺点
- 不适用于业务简单和规模小的中小型项目开发
- 三层中上层调用下层,一定程度上会降低系统性能
- 修改业务功能可能会导致三层级联修改
- 要求团队开发人员编码时严格遵守三层架构模式
其他架构模式
除了常见的三层架构模式外,还有很多架构模式,不同的架构模式适用于不同的软件系统开发场景。
如果以下这些架构模式仍然无法满足软件系统设计和开发,那么就需要由架构师针对软件系统设计专用的架构了。