内容简介:在本文中,我将简要介绍以下10种常见的架构模式及其用法,优缺点。该模式可用于建立可以分解为子任务组的软件系统,每个子任务都处于特定的抽象级别。每个层为下一个更高层提供服务。可见马丁鲍勃大叔的干净架构最常见的4层通用信息系统如下。
在本文中,我将简要介绍以下10种常见的架构模式及其用法,优缺点。
- 分层模式
- 客户端 - 服务器模式
- 主从模式
- 管道过滤器模式
- 经纪人模式
- 点对点模式
- 事件总线模式
- 模型 - 视图 - 控制器模式
- 黑板模式
- 解释器模式
1.分层图案
该模式可用于建立可以分解为子任务组的软件系统,每个子任务都处于特定的抽象级别。每个层为下一个更高层提供服务。可见马丁鲍勃大叔的干净架构
最常见的4层通用信息系统如下。
- 表示层 (也称为 UI层 )
- 应用层 (也称为 服务层 )
- 业务逻辑层 (也称为 域层 )
- 数据访问层 (也称为 持久层 )
用法
- 一般桌面应用程序
- 电子商务Web应用程序。
分层模式
2.客户端 - 服务器模式
这种模式由两方组成; 一个 服务器 和多个 客户端 。服务器组件将为多个客户端组件提供服务。客户端从服务器请求服务,服务器向这些客户端提供相关服务。此外,服务器继续监听客户端请求。
用法
- 在线应用程序,如电子邮件,文档共享和银行。
客户端 - 服务器模式
3.主从模式
这种模式由两方组成; 主节点 和 从节点 。主组件在相同的从组件之间分配工作,并根据从组返回的结果计算最终结果。
用法
- 在数据库复制中,主数据库被视为权威源,从属数据库与其同步。
- 外围设备连接到计算机系统中的总线(主驱动器和从驱动器)。
主从模式
4.管道过滤器模式
该模式可用于构建生成和处理数据流的系统。每个处理步骤都包含在 过滤器 组件中。要处理的数据通过 管道 传递。这些管道可用于缓冲或用于同步目的。
用法
- 编译器。连续过滤器执行词法分析,解析,语义分析和代码生成。
- 生物信息学的工作流程。
管道过滤器模式
5.经纪人模式
此模式用于构建具有分离组件的分布式系统。这些组件可以通过远程服务调用相互交互。一个 经纪人 组件负责通信之间的协调 组件 。
服务器将其功能(服务和特征)发布到代理。客户端从代理请求服务,然后代理将客户端从其注册表重定向到合适的服务。
用法
- 消息代理软件,如 Apache ActiveMQ , Apache Kafka , RabbitMQ 和 JBoss Messaging 。
经纪人模式
6.点对点模式
在这种模式中,各个组件称为 对等 组件。对等体既可以作为 客户端 ,从其他对等体请求服务,也可以作为 服务器 ,为其他对等体提供服务。对等体可以充当客户端或服务器,也可以充当两者,并且可以随时间动态地改变其角色。
用法
点对点模式
7.事件总线模式
这种模式主要涉及事件,有4个主要组成部分; 事件源 , 事件监听器 , 通道 和 事件总线 。源将事件发布到事件总线上的特定通道。听众订阅特定频道。监听者会收到发布到他们之前订阅的频道的消息的通知。
用法
- Android开发
- 通知服务
事件总线模式
8.模型 - 视图 - 控制器模式
这种模式,也称为MVC模式,将交互式应用程序划分为3个部分,
- model - 包含核心功能和数据
- view - 向用户显示信息(可以定义多个视图)
- controller - 处理来自用户的输入
这样做是为了将信息的内部表示与向用户呈现和接受信息的方式分开。它解耦组件并允许有效的代码重用。
用法
模型 - 视图 - 控制器模式
9.黑板模式
这种模式对于没有确定性解决方案策略的问题很有用。黑板模式由3个主要部分组成。
- 黑板blackboard - 包含解决方案空间中对象的结构化全局内存
- 知识来源 - 具有自己代表性的专业模块
- 控制组件 - 选择,配置和执行模块。
所有组件都可以访问黑板。组件可能会生成添加到黑板的新数据对象。组件在黑板上查找特定类型的数据,并且可以通过与现有知识源的模式匹配来找到它们。
用法
- 语音识别
- 车辆识别和跟踪
- 蛋白质结构鉴定
- 声纳信号解释。
黑板模式
10.解释器模式
此模式用于设计解释用专用语言编写的程序的组件。它主要指定如何评估程序行,称为用特定语言编写的句子或表达式。基本思想是为语言的每个符号设置一个类。
用法
- 数据库查询语言,如SQL。
- 用于描述通信协议的语言。
解释器模式
业务分析设计
架构设计
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 架构视角:文件的通用存储原理
- 基于通用技术的企业安全运营架构
- 数据驱动型的 IoT 体系架构设计,第 2 部分: 全异步的通用高性能物联网架构参考实践
- [译] Uber 开源 Fusion.js:一个基于插件架构的通用 Web 框架
- IAM安全:通用电气(GE)对身份和访问管理基础架构的实践
- 2017图灵奖得主:通用芯片每年仅提升3%,神经专用架构才是未来
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
单元测试之道Java版
David Thomas、Andrew Hunt / 陈伟柱、陶文 / 电子工业 / 2005-1 / 25.00元
程序员修炼三部曲丛书包含了四本书,介绍了每个注重实效的程序员和成功团队所必备的一些工具。 注重实效的程序员都会利用反馈来指导开发,并驱动个人的开发流程。编码的时候,最有用的反馈来自于“单元测试”。 为了测试一座桥梁,不会只在晴朗的天气,开一辆汽车从桥中间穿过,就认为已经完成了对桥梁的测试。然而许多程序员却正在使用这种测试方法——把这种一次顺利通过称为“测试”。事实上,注重实效的程序员应......一起来看看 《单元测试之道Java版》 这本书的介绍吧!