搜索
首页常见问题几种常见的软件架构是什么?

常见的软件架构模式:分层架构模式、客户端-服务器模式、主从模式、管道-过滤器模式、代理模式、点对点模式、事件总线模式、模型-视图-控制器(MVC)模式、黑板模式、解释器模式等。

几种常见的软件架构是什么?

10种常见软件架构模式

是否想知道大型企业级系统是怎么设计的?在软件主体开发之前,我们必须选择一个合适的架构来提供所需的功能和质量特征。所以在应用于设计之前,我们应该了解不同的架构。


什么是架构模式

维基百科:架构模式是在给定上下文的软件架构中,针对常发生问题的一种通用、复用的解决方案。架构模式类似于软件设计模式,但是范畴更广。

本文中,我将简要的阐述如下10中常见架构模式的应用和优缺点。

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

1. 分层模式

该模式用于构建可分解为多组子任务的程序,每个子任务都在某个抽象层,每个层对上一个更高层提供服务。一般信息系统中最常见的4层体系如下。

  • 表示层(也叫 UI 层)
  • 应用层(也叫服务层)
  • 业务逻辑层(也叫领域层)
  • 数据访问层(也叫持久层)
    应用场景
  • 一般桌面程序
  • 电子商务网页程序


2. 客户端-服务器模式

    该模式由两部分构成:单个服务器端和多个客户端。服务器组件对多个客户端组件提供服务。客户端向服务器端请求服务,服务端提供对应服务给这些客户端。此外,服务器端继续监听客户端请求。

应用场景

  • 在线应用,比如电子邮件、文档分享和银行业务


3. 主从模式

该模式由两部分构成:主节点和多个从节点。主节点组件向多个独立的从节点组件分派任务,并根据从节点返回结果计算出最终结果。

应用场景

  • 数据库复制,主数据库被视为权威来源并同步到从数据库
  • 连接到计算系统的外围设备(主从驱动)


4. 管道-过滤器模式

    该模式用于构建生产和处理数据流的系统。每个处理步骤封装在一个过滤器组件中。待处理的数据被传送到管道之中,这些管道可用于缓冲或者同步。

    应用场景

  • 编译器,接连的过滤器执行词义分析,语法分析,语义分析和代码生成
  • 生物资料学科的工作流


5. 代理模式

    该模式用于构建组件解耦的分布式系统。这些组件通过远程调用彼此交互。代理组件负责多个组件的通信协调,服务器向代理公开他们的能力(服务和特性);客户端从代理中获取服务,然后代理重定向客户端到注册服务库中一个合适的服务。

    应用场景

  • 消息队列软件,比如 Apache ActiveMQ、Apache Kafka、RabbitMQ 和 JBoss Messaging


6. 点对点模式

    该模式中,各独立组件都叫对等点。对等点既可以作为客户端从其他对等点获取服务,也可作为服务端向其他对等点提供服务。对等点可作为客户端、或者服务端、或者两者,并且在不时间动态切换角色。

    应用场景

  • 文件分享网络,比如 Gnutella 和 G2
  • 多媒体协议,比如 P2PTV 和 PDTP
  • 私媒体程序,比如 Spotify


7. 事件总线模式

    该模式主要处理事件,有4个主要组件:事件源,事件监听器,频道和事件总线。事件源发布消息到事件总线上的某个频道,监听器订阅某个频道,并得知在已订阅频道中发布的消息。

    应用场景

  • Android 开发
  • 通知服务


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

    该模式也叫 MVC 模式,划分交互程序为3个部分:模型——包含核心功能和数据,视图——显示信息给用户(多个视图可被定义),控制器——处理用户输入。它通过分割用户信息的内部陈述和呈现、接受方式来实现,解耦组件并允许高效的代码复用。

    应用场景

  • 主流编程语言的万维网程序架构
  • 网页框架,比如 Django 和 Rails


9. 黑板模式

    该模式对没有确定性方案策略的问题很有用。黑板模式由三个主要组件组成,黑板——包含解空间对象的结构化全局内存,知识源——有自拥表示的专门模块,控制组件——选择、配置和执行模块。所有组件都可访问黑板,可生成新的数据对象并添加到黑板中。在黑板中,可根据已有知识源的匹配规则,寻找某些类型的数据。

    应用场景

  • 语音识别
  • 车辆识别和跟踪
  • 蛋白质结构鉴定
  • 声呐信号解释


10. 解释器模式

    该模式用于设计解释特定语言编写的程序的组件。该组件主要指定怎么去评估程序代码行,也就是所谓的用某种语言写的语句或者表达式,基本点在于给语言符号分类。

    应用场景

  • 数据库查询语言,比如 SQL
  • 用于描述通信协议的语言


架构模式比较

下面的表格概述每个架构模式的优缺点。


希望这篇文章对你有帮助,也很想听听你们的想法。谢谢阅读。^_^

以上是几种常见的软件架构是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境