体系结构
有没有想过如何设计大型企业级系统? 在开始主要软件开发之前,我们必须选择一个合适的架构来为我们提供所需的功能和质量属性。 因此,在将它们应用于我们的设计之前,我们应该了解不同的体系结构。
什么是建筑模式?
根据维基百科,
架构模式是在特定环境下软件体系结构中常见问题的通用可重用解决方案。架构模式类似于软件设计模式,但具有更广的范围。
在本文中,我将简要地解释以下10种常见架构模式及其用法,优缺点。
1.分层模式
这种模式可以用来构建可以分解为子任务组的程序,每个子任务都处于特定的抽象层次。 每层为下一个更高层提供服务。
一般信息系统最常见的4层如下。
用法
- 一般桌面应用程序
- 电子商务Web应用程序。
2.客户端 - 服务器模式
这种模式由两方组成; 一个服务器和多个客户端 。 服务器组件将向多个客户端组件提供服务。 客户端向服务器请求服务,服务器向这些客户端提供相关服务。 此外,服务器继续侦听客户端请求。
用法
客户端 - 服务器模式3.主从模式
这种模式由两方组成; 主人和奴隶 。 主组件将工作分配给相同的从组件,并根据从组件返回的结果计算最终结果。
用法
主从模式4.管道过滤器模式
这种模式可以用来构造产生和处理数据流的系统。 每个处理步骤都包含在一个过滤器组件中。 要处理的数据通过管道传递。 这些管道可用于缓冲或同步目的。
用法
管道过滤器模式5.经纪人模式
这种模式用于构建具有解耦组件的分布式系统。 这些组件可以通过远程服务调用相互交互。 代理组件负责协调组件之间的通信。
服务器将其功能(服务和特性)发布给代理。 客户向经纪人请求服务,然后经纪人将客户重定向到其注册中心的适当服务。
用法
- 消息代理软件,如Apache activemq , Apache Kafka , RabbitMQ和JBoss Messaging 。
6.点对点模式
在这种模式中,单个组件被称为同级 。 同事可能既作为客户端 ,向其他同行请求服务,又作为服务器向其他同行提供服务。 对等体可以充当客户端或服务器或两者兼而有之,并且可以随着时间动态地改变其角色。
用法
点对点模式7.事件总线模式
这种模式主要处理事件,并有四个主要组成部分; 事件源 , 事件监听器 , 通道和事件总线 。 信息源将消息发布到事件总线上的特定频道。 听众订阅特定频道。 听众会收到发布到他们之前订阅的频道的消息。
用法
- Android开发
- 通知服务
8.模型 - 视图 - 控制器模式
这种模式也称为mvc模式,将交互式应用程序分为三部分,
- 模型 - 包含核心功能和数据
- 视图 - 将信息显示给用户(可以定义多个视图)
- 控制器 - 处理来自用户的输入
这样做是为了将信息的内部表示与信息呈现给用户并从用户接受的方式分开。 它将组件分离并允许有效的代码重用。
用法
模型 - 视图 - 控制器模式9.黑板模式
这种模式对于没有确定性解决策略的问题是有用的。 黑板图案由3个主要组件组成。
所有组件都可以访问黑板。 组件可能产生添加到黑板的新数据对象。 组件在黑板上查找特定类型的数据,并可能通过与现有知识源的模式匹配找到这些数据。
用法
- 语音识别
- 车辆识别和跟踪
- 蛋白质结构鉴定
- 声纳信号解释。
10.解释器模式
此模式用于设计解释用专用语言编写的程序的组件。 它主要指定如何评估程序行,称为用特定语言编写的句子或表达式。 基本思想是为语言的每个符号设置一个类。
用法
解释器模式建筑模式的比较
下面的表格总结了每种架构模式的优缺点。
建筑模式的比较希望你发现这篇文章有用。
原文:https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013
相关阅读
【这里有个不错的课程链接,感兴趣的同学可以看一下】: https://ke.qq.com/course/400831?saleToken=1597517 由于软件工程课程需要
解决WMI Provide Host占用CPU过高问题(win10亲测有用)
欢迎访问我的个人博客 http://xiaolongwu.cn/ 一、写在前面的话 打开任务管理器看到WMI Provide Host一直占用比较高的CPU资源,
转载这篇文章 使用过ajax的朋友经常会见到这样的代码:here,这里面的void是一个操作符,该操作符指定要计算一个表达式但是不返回值。j
7月25日,网贷天眼研究院发布了《6月50家网贷平台信息披露排行榜》,报告显示,6月份大多平台信息披露评分结果基本持平,其中6家平台
分享个人工智能教程,零基础入门!http://www.captainbed.net/inner 我们知道,最常见的web错误码404表示文件或资源未找到,但还有其他