Java后端10种常见的软件架构模式,你知道多少?
有没有想过要设计多⼤的企业规模系统?在主要的软件开发开始之前,我们必须选择⼀个合适的体系结构,它将为我们提供所需的功能和质量属性。因此,在将它们应⽤到我们的设计之前,我们应该了解不同的体系结构。
什么是架构模式?
根据中的定义:
架构模式是⼀个通⽤的、可重⽤的解决⽅案,⽤于在给定上下⽂中的软件体系结构中经常出现的问题。架构模式与软件设计模式类似,但具有更⼴泛的范围。
在本⽂中,将简要地解释以下10种常见的体系架构模式,以及它们的⽤法、优缺点。
⼀、分层模式
这种模式也称为多层体系架构模式。它可以⽤来构造可以分解为⼦任务组的程序,每个⼦任务都处于⼀个特定的抽象级别。每个层都为下⼀个提供更⾼层次服务。
⼀般信息系统中最常见的是如下所列的4层。
表⽰层(也称为UI层)
应⽤层(也称为服务层)
业务逻辑层(也称为领域层)
数据访问层(也称为持久化层)
使⽤场景:
⼀般的桌⾯应⽤程序
电⼦商务Web应⽤程序
Layered pattern
⼆、客户端-服务器模式
这种模式由两部分组成:⼀个服务器和多个客户端。服务器组件将为多个客户端组件提供服务。客户端从服务器请求服务,服务器为这些客户端提供相关服务。此外,服务器持续侦听客户机请求。
使⽤场景:电⼦邮件,⽂件共享和银⾏等在线应⽤程序。
Client-server pattern
三、主从设备模式
这种模式由两⽅组成:主设备和从设备。主设备组件在相同的从设备组件中分配⼯作,并计算最终结果,这些结果是由从设备返回的结果。
使⽤场景:
在数据库复制中,主数据库被认为是权威的来源,并且要与之同步
在计算机系统中与总线连接的外围设备(主和从驱动器)
Master-slave pattern
四、管道-过滤器模式
此模式可⽤于构造⽣成和处理数据流的系统。每个处理步骤都封装在⼀个过滤器组件内。要处理的数据是通过管道传递的。这些管道可以⽤于缓冲或⽤于同步。
使⽤场景:
编译器。连续的过滤器执⾏词法分析、解析、语义分析和代码⽣成
⽣物信息学的⼯作流
Pipe-filter pattern
五、代理模式
此模式⽤于构造具有解耦组件的分布式系统。这些组件可以通过远程服务调⽤彼此交互。代理组件负责组件之间的通信协调。
服务器将其功能(服务和特征)发布给代理。客户端从代理请求服务,然后代理将客户端重定向到其注册中⼼的适当服务。
使⽤场景:消息代理软件,如Apache ActiveMQ,Apache Kafka,RabbitMQ和JBoss Messaging
java可以开发什么软件
Broker pattern
六、点对点模式
在这种模式中,单个组件被称为对等点。对等点可以作为客户端,从其他对等点请求服务,作为服务器,为其他对等点提供服务。对等点可以充当客户端或服务器或两者的⾓⾊,并且可以随时间动态地更改其⾓⾊。
使⽤场景:
像Gnutella和G2这样的⽂件共享⽹络
多媒体协议,如P2PTV和PDTP
像Spotify这样的专有多媒体应⽤程序
Peer-to-peer pattern
七、事件总线模式
这种模式主要是处理事件,包括4个主要组件:事件源、事件、通道和事件总线。消息源将消息发布到事件总线上的特定通道上。侦听器订阅特定的通道。侦听器会被通知消息,这些消息被发布到它们之前订阅的⼀个通道上。
使⽤场景:
安卓开发
通知服务
Event-bus pattern
⼋、模型-视图-控制器模式
这种模式,也称为MVC模式,把⼀个交互式应⽤程序划分为3个部分:
模型:包含核⼼功能和数据
视图:将信息显⽰给⽤户(可以定义多个视图)
控制器:处理⽤户输⼊的信息
这样做是为了将信息的内部表⽰与信息的呈现⽅式分离开来,并接受⽤户的请求。它分离了组件,并允许有效的代码重⽤。
使⽤场景:
在主要编程语⾔中互联⽹应⽤程序的体系架构
像Django和Rails这样的Web框架
Model-view-controller pattern
九、⿊板模式
这种模式对于没有确定解决⽅案策略的问题是有⽤的。⿊板模式由3个主要组成部分组成。
⿊板——包含来⾃解决⽅案空间的对象的结构化全局内存
知识源——专门的模块和它们⾃⼰的表⽰
控制组件——选择、配置和执⾏模块
所有的组件都可以访问⿊板。组件可以⽣成添加到⿊板上的新数据对象。组件在⿊板上查特定类型的数据,并通过与现有知识源的模式匹配来查这些数据。
使⽤场景:
语⾳识别
车辆识别和跟踪
蛋⽩质结构识别
声纳信号的解释
Blackboard pattern
⼗、解释器模式
这个模式⽤于设计⼀个解释⽤专⽤语⾔编写的程序的组件。它主要指定如何评估程序的⾏数,即以特定的语⾔编写的句⼦或表达式。其基本思想是为每种语⾔的符号都有⼀个分类。
使⽤场景:
数据库查询语⾔,⽐如SQL
⽤于描述通信协议的语⾔
Interpreter pattern
体系架构模式的⽐较
下⾯给出的表格总结了每种体系架构模式的优缺点。
Comparison of Architectural Patterns
由于平台不能直接发送学习资料等原因,有需要以上说到的软件架构模式的学习资料的朋友们只需要评论+转发+关注,并且扫描下⽅⼩编⼆维码即可免费获取PDF学习笔记以及往期的⾯试题合集
BAT⾯试题:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。