如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间
创建软件系统基本结构的原则称为软件体系结构。软件结构由软件元素及其相互关系组成,这些元素起着蓝图的作用,规划了要执行的任务的模式。软件设计团队极大地依赖于这些软件架构模式。应当指出,必须明智地选择软件体系结构,因为一旦实施,就不容易更改。
软件架构模式很重要,因为它们是在架构设计中成功构建和测试的最佳解决方案的示例。有经验的开发人员会使用他们的知识和熟悉程度来包含这些模式,而不是在设计时人为或随机创建模式。此外,通过使用这些模式并突出显示它们,他们可以共享知识并教会新开发人员关键的设计策略。
几种经典的架构模式:
4+1视图”,分别为场景视图、逻辑视图、物理视图、处理流程视图和开发视图。这5种架构视图是从不同角度表示一个软件系统的不同特征,组合到一起作为架构蓝图描述系统架构。
各个视图内容大概如下:
“4+1”视图模型一览表:
在分层模式中,系统将划分为一个层次结构
分层架构规则:
类图如下:
分层系统的实现:
优点:
缺点:
使用范围:
问题:面向数据流系统时:
解决方案:
管道/过滤器架构模式主要包括过滤器和管道两种元素:
过滤器、管道作用:
管道/过滤器结构:
每个过滤器独立,是独立的实体。过滤器之间无需共享状态,无需知道其他过滤器完成自己的任务,不同过滤器之间不需要进行交互。数据输出的最终结果与各个过滤器执行的顺序无关
结构如下:
通用结构:
管道和过滤器的实现:
管道/过滤器风格具有以下优点:
管道/过滤器风格也存在着一定的问题:
在现有软件开发中,业务越来越复杂,代码规模越来越大,依赖的人力也越来越多。为了降低系统模块内部耦合度,减少开发难度,也为了能够支持多团队的并行开发,插件式开发架构变得愈加流行,尤其是在桌面软件、移动端应用中。Eclipse, Visual Studio, VSCode等,都是插件式开发架构的典型案例。
使用插件的意义
需求:
解决方案:
插件的概念
优点:
缺点
也称为分布式系统架构模式
需求:
解决方案:
Broker在客户和服务器间建立一个连接,对客户隐藏服务器的物理位置。Broker 必须了解服务器,服务器提供的服务必须向它登记
类图如下:
参与者:
优点:
缺点:
使用范围:
问题:
解决方法:
参与者:
MVC组件的依赖关系:
模型
视图
通过模型更新两个视图:
控制器
优点:
缺点
使用范围:交互式软件
面向服务的架构模式
问题:
解决方案:
对服务的要求:
服务的层次:业务流程→应用场景→基本服务
角色合作:
类图和参与者:
优点:
缺点:
使用范围: