10个通用软件架构模式

栏目: 后端 · 发布时间: 7年前

内容简介:在本文中,我将简要介绍以下10种常见的架构模式及其用法,优缺点。该模式可用于建立可以分解为子任务组的软件系统,每个子任务都处于特定的抽象级别。每个层为下一个更高层提供服务。可见马丁鲍勃大叔的干净架构最常见的4层通用信息系统如下。

在本文中,我将简要介绍以下10种常见的架构模式及其用法,优缺点。

  1. 分层模式
  2. 客户端 - 服务器模式
  3. 主从模式
  4. 管道过滤器模式
  5. 经纪人模式
  6. 点对点模式
  7. 事件总线模式
  8. 模型 - 视图 - 控制器模式
  9. 黑板模式
  10. 解释器模式

1.分层图案

该模式可用于建立可以分解为子任务组的软件系统,每个子任务都处于特定的抽象级别。每个层为下一个更高层提供服务。可见马丁鲍勃大叔的干净架构

最常见的4层通用信息系统如下。

  • 表示层 (也称为 UI层
  • 应用层 (也称为 服务层
  • 业务逻辑层 (也称为 域层
  • 数据访问层 (也称为 持久层

用法

  • 一般桌面应用程序
  • 电子商务Web应用程序。

10个通用软件架构模式

分层模式

2.客户端 - 服务器模式

这种模式由两方组成; 一个 服务器 和多个 客户端 。服务器组件将为多个客户端组件提供服务。客户端从服务器请求服务,服务器向这些客户端提供相关服务。此外,服务器继续监听客户端请求。

用法

  • 在线应用程序,如电子邮件,文档共享和银行。

10个通用软件架构模式

客户端 - 服务器模式

3.主从模式

这种模式由两方组成; 主节点从节点 。主组件在相同的从组件之间分配工作,并根据从组返回的结果计算最终结果。

用法

  • 在数据库复制中,主数据库被视为权威源,从属数据库与其同步。
  • 外围设备连接到计算机系统中的总线(主驱动器和从驱动器)。

10个通用软件架构模式

主从模式

4.管道过滤器模式

该模式可用于构建生成和处理数据流的系统。每个处理步骤都包含在 过滤器 组件中。要处理的数据通过 管道 传递。这些管道可用于缓冲或用于同步目的。

用法

  • 编译器。连续过滤器执行词法分析,解析,语义分析和代码生成。
  • 生物信息学的工作流程。

10个通用软件架构模式

管道过滤器模式

5.经纪人模式

此模式用于构建具有分离组件的分布式系统。这些组件可以通过远程服务调用相互交互。一个 经纪人 组件负责通信之间的协调 组件

服务器将其功能(服务和特征)发布到代理。客户端从代理请求服务,然后代理将客户端从其注册表重定向到合适的服务。

用法

10个通用软件架构模式

经纪人模式

6.点对点模式

在这种模式中,各个组件称为 对等 组件。对等体既可以作为 客户端 ,从其他对等体请求服务,也可以作为 服务器 ,为其他对等体提供服务。对等体可以充当客户端或服务器,也可以充当两者,并且可以随时间动态地改变其角色。

用法

10个通用软件架构模式

点对点模式

7.事件总线模式

这种模式主要涉及事件,有4个主要组成部分; 事件源事件监听器通道事件总线 。源将事件发布到事件总线上的特定通道。听众订阅特定频道。监听者会收到发布到他们之前订阅的频道的消息的通知。

用法

  • Android开发
  • 通知服务
10个通用软件架构模式

事件总线模式

8.模型 - 视图 - 控制器模式

这种模式,也称为MVC模式,将交互式应用程序划分为3个部分,

  1. model   - 包含核心功能和数据
  2. view   - 向用户显示信息(可以定义多个视图)
  3. controller   - 处理来自用户的输入

这样做是为了将信息的内部表示与向用户呈现和接受信息的方式分开。它解耦组件并允许有效的代码重用。

用法

  • 主要编程语言中的万维网应用程序架构。
  • Web框架,如 Django Rails
10个通用软件架构模式

模型 - 视图 - 控制器模式

9.黑板模式

这种模式对于没有确定性解决方案策略的问题很有用。黑板模式由3个主要部分组成。

  • 黑板blackboard  - 包含解决方案空间中对象的结构化全局内存
  • 知识来源   - 具有自己代表性的专业模块
  • 控制组件   - 选择,配置和执行模块。

所有组件都可以访问黑板。组件可能会生成添加到黑板的新数据对象。组件在黑板上查找特定类型的数据,并且可以通过与现有知识源的模式匹配来找到它们。

用法

  • 语音识别
  • 车辆识别和跟踪
  • 蛋白质结构鉴定
  • 声纳信号解释。
10个通用软件架构模式

黑板模式

10.解释器模式

此模式用于设计解释用专用语言编写的程序的组件。它主要指定如何评估程序行,称为用特定语言编写的句子或表达式。基本思想是为语言的每个符号设置一个类。

用法

  • 数据库查询语言,如SQL。
  • 用于描述通信协议的语言。
10个通用软件架构模式

解释器模式

业务分析设计

架构设计


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Agile Web Application Development with Yii 1.1 and PHP5

Agile Web Application Development with Yii 1.1 and PHP5

Jeffrey Winesett / Packt Publishing / 2010-08-27

In order to understand the framework in the context of a real-world application, we need to build something that will more closely resemble the types of applications web developers actually have to bu......一起来看看 《Agile Web Application Development with Yii 1.1 and PHP5》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具