什么是分层架构模式

分层(Layer)模式是最常见的一种架构模式。

  分层描述的是这样一种架构设计过程:从最低级别的抽象开始,称为第1层。这是系统的基础。通过将第J层放置在第J-1层的上面逐步向上完成抽象阶梯,直到到达功能的最高级别,称为第N层。

  因而分层模式就可以定义为:将解决方案的组件分隔到不同的层中。每一层中的组件应保持内聚性,并且应大致在同一抽象级别。每一层都应与它下面的各层保持松散耦合。

  分层模式的关键点在于确定依赖:即通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护。

对系统进行分层有如下基本原则

— 可见度。各子系统只能与同一层及其下一层的子系统存在依赖关系。

— 易变性。最上层放置随用户需求的改变而改变的元素。最底层放置随实施平台(硬件、语言、操作系统、数据库等)的改变而改变的元素。中间的夹层放置广泛适用于各种系统和实施环境的元素。如果在这些大类中进一步划分有助于对模型进行组织,则添加更多的层。

— 通用性。一般将抽象的模型元素放置在模型的低层。如果它们不针对于具体的实施,则倾向于将其放置在中间层。

— 层数。对于小型系统,三层就足够了。对于复杂系统,通常需要5-7层。无论复杂程度如何,如果超过10层,就需要慎重考虑了。层数越多,越需慎重。

常见的分层架构模式:

1.客户端-服务器模型(Client-Server,C/S)。

2.三层模型:用户表示层、业务逻辑层、数据层。

3.多层结构的技术组成模型:表现层、中间层、数据层。

4.网络系统常用三层结构:核心层、汇聚层和接入层。

5.RUP典型分层方法:应用层、专业业务层、中间件层、系统软件层。

6.基于Java的B/S模式系统结构:浏览器端、服务器端、请求接收层、请求处理层。

7.某六层结构:功能层(用户界面)、模块层、组装层(软件总线)、服务层(数据处理)、数据层、核心层。

时间: 2024-08-01 14:48:56

什么是分层架构模式的相关文章

再理下系统分层架构模式

MVC是横向分工:三层架构,是纵向分层. 在大多数架构图中,MVC被画成三角形,View是使用者能够看到并操作的层(可能是Web页面,也可能是GUI),Controller是处理各种操作请求的核心,Model是用于保存各种数据,并且会影响View的显示结果. 而三层架构,通常会被画成上中下三层,上层是前端:中层是业务逻辑:底层是数据存储. 从这个介绍来看,MVC与三层架构的确似乎存在对应关系.在很多简单项目中,我们可以将业务逻辑写在Controller里,而保存数据的逻辑也无非是数据库的表与Mo

软件架构模式之分层架构

本章内容出自<软件架构模式>第一章,该书由 开发技术前线 项目组成员翻译,更多内容请访问 <软件架构模式>中文版pdf . 简介 对程序员来说很常见一种情况是在没有合理的程序架构时就开始编程,没有一个清晰的和定义好的架构的时候,大多数开发者和架构师通常会使用标准式的传统分层架构模式(也被称为多层架构)--通过将源码模块分割为几个不同的层到不同的包中.不幸的是,这种编码方式会导致一系列没有组织性的代码模块,这些模块缺乏明确的规则.职责和同其他模块之间的关联.这通常被称为架构大泥球.

软件架构模式-分层架构II

参考:http://www.ruanyifeng.com/blog/2016/09/software-architecture.html https://blog.csdn.net/bboyfeiyu/article/details/45136299 https://www.cnblogs.com/zdxster/p/5305155.html   1. 什么是分层架构 分层架构是一种很常见的架构模式,它也叫N层架构.这种架构是大多数Jave EE应用的实际标准,因此很多的架构师,设计师,还有程序

移动App设计之分层架构+MVC(转)

场景分析:我们知道,一个移动设备的应用大多与网络有关,也就是说,我在移动设备上看到的数据,一般都是从Server上”拉“过来,显示在我们的移动设备(ios androiud.wpohone等)上.那我们就这个”拉“的过程分析,拉什么样的数据?去哪里拉?拉过来的数据怎么处理?用编程(开发)的思维看,就是定义什么实体(业务实体).发送请求.解析数据.当然这也只是大体的过程.但从软件架构设计上讲,定义实体.发送请求.解析数据都是具有单独意义的模块.那我们怎么处理这些模块呢? 场景应用:sina wei

大型网站技术架构(二)--架构模式

大型网站技术架构(一)--大型网站架构演化 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复工作. 所谓网站架构模式即为了解决大型网站面临的高并发访问.海量数据.高可靠运行灯一系列问题与挑战.为此,在实践中提出了许多解决方案,以实现网站高性能.高可靠性.易伸缩.可扩展.安全等各种技术架构目标. 1.分层 分词是企业应用系统中最常见的一种架构牧师,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后

大型站点技术架构(二)--架构模式

大型站点技术架构(一)--大型站点架构演化 每个模式描写叙述了一个在我们周围不断反复发生的问题及该问题解决方式的核心. 这样,你就能一次重新地使用该方案而不必做反复工作. 所谓站点架构模式即为了解决大型站点面临的高并发訪问.海量数据.高可靠执行灯一系列问题与挑战.为此.在实践中提出了很多解决方式,以实现站点高性能.高可靠性.易伸缩.可扩展.安全等各种技术架构目标. 1.分层 分词是企业应用系统中最常见的一种架构牧师,将系统在横向维度上切分成几个部分,每一个部分负责一部分相对简单并比較单一的职责,

软件架构之分层架构理解

分层架构特定场景:分层架构是一种很常见的架构模式,它也叫N层架构.分层架构适用于一个集成不同功能的系统,当我们需要把很多不同的代码集起来的时候,这种模式提供了最合理的结构.能让我们的代码有足够的灵活性去应对需求改变.当系统本身不负责或者可预期的修改很少时,则不适合用分层架构,因为这样可以增加很多不必要的代码,陷入过度设计的泥坑.不过分层架构模式是一个稳定的通用模式,这使得它成为大部分应用程序的首选,特别是当你不确定使用哪个架构的时候.没有任何一种架构模式是万能的,所以每个模式都必须有"适应场景&

测试架构师:软件架构模式之分层架构 2

示例 为了演示分层架构是如何工作的,想象一个场景,如表1-4,用户发出了一个请求要获得客户的信息.黑色的箭头是从数据库中获得用户数据的请求流,红色箭头显示用户数据的返回流的方向.在这个例子中,用户信息由客户数据和订单数组组成(客户下的订单). 用户界面只管接受请求以及显示客户信息.它不管怎么得到数据的,或者说得到这些数据要用到哪些数据表.如果用户界面接到了一个查询客户信息的请求,它就会转发这个请求给用户委托(Customer Delegate)模块.这个模块能找到业务层里对应的模块处理对应数据(

测试架构师:软件架构模式之分层架构 3

示例 为了演示分层架构是如何工作的,想象一个场景,如表1-4,用户发出了一个请求要获得客户的信息.黑色的箭头是从数据库中获得用户数据的请求流,红色箭头显示用户数据的返回流的方向.在这个例子中,用户信息由客户数据和订单数组组成(客户下的订单). 用户界面只管接受请求以及显示客户信息.它不管怎么得到数据的,或者说得到这些数据要用到哪些数据表.如果用户界面接到了一个查询客户信息的请求,它就会转发这个请求给用户委托(Customer Delegate)模块.这个模块能找到业务层里对应的模块处理对应数据(