架构模式-分层

本人第一次在后台架构中引入分层概念,以下为我在项目中对于分层的初步理解

分层的好处:

1、降低系统中各个模块之间的耦合,保持各层之间的独立(各层可以根据具体情况独立演化发展,而不需要对其他层做出调整)

2、便于开发维护

3、对于支持高并发,向分布式方向发展至关重要(被分割的业务模块可以采取分布式部署,每个模块可以部署在独立的服务器集群上)

采用分层结构的系统可以分为:应用层、服务层、数据层。(应用层为最表层,服务层为中间层,数据层为最底层)

分层结构的约束:

1、禁止跨层次的调用(如:禁止应用层直接调用数据层)

2、禁止逆向调用(如:禁止数据层调用服务层)

各层的简要介绍:

应用层:对于网站来说,此层可用于各个页面的展示(如:将html页面通过smarty引擎转化为php页面并展示)。此层还可用来提供API服务(即:将第三方应用整理成API以便调用)

服务层:我对于此层的理解就是“各个独立的服务模块”(下面会有具体的介绍)。

数据层:这一层作为最底层,主要负责给服务层提供基础服务,如基础数据的查找与存取,和相应的缓存处理。

服务层详解:

服务层的内容很重要的一点是要做到“相互独立”,

服务层里应该存在的是各个功能的流程模块,(应该保证后期可以将各个功能模块分别部署到不同的服务器集群上)

服务层应该是整个系统的“功能流程核心”,比如一个论坛系统,它其实是由各个细小的服务模块组成,用户注册服务、用户登录服务、用户管理服务、用户之间的私信服务、等等。

服务层与数据层之间的关系:

假设服务层中有服务A和服务B,A服务是用户之间消息对话功能,B服务是系统中所有用户的一个排名功能。

A和B之间几乎无耦合,相互保持着独立。

假设数据层中有服务C,C服务用于“查询出数据库中的用户信息”。

数据层的作用之一就是给服务层提供基础的数据支持。A服务和B服务因为都牵扯到了用户,那么无疑都得从数据库中查询出用户的一些必要信息,那么服务层中的A和B就都需要调用到数据层中的C服务。

此时,我们还可以对C服务进行缓存处理,来提高整体性能。

整体流程:

整体流程呈现出“总分总”的特点。

访问应用层的某个页面后,用户接下来的选择决定着开始服务层中的哪一个模块,之后服务层中模块在运行的同时会再调用数据层中的基础服务。

时间: 2024-08-27 05:36:08

架构模式-分层的相关文章

架构模式-分层(二)

TP框架中三层架构的体现: 应用层:调用服务层,将服务层提供的各种数据通过模板引擎赋值并输出到前端页面. 服务层:调用数据层,将得到的数据更具业务进行处理,再发送给应用层. 数据层:一般是从数据库中获取数据,形式一般为model文件 应用层和服务层可以是控制器文件,如将所有应用层写在一个控制器文件中,服务层还可以接着横向划分,建立多个服务层控制器,应用层控制器中的各个方法只需要调用这些服务层控制器中的方法获取数据即可. 数据层可以是模型文件,当然如果只是简答的业务,单纯的M方法也算是调用了数据层

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

每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复工作. 网站架构模式 分层 分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统. 在大型网站架构中采用分层结构,将网站软件分为应用层.服务层.数据层. 应用层负责具体业务和视图展示,如网站首页及搜索输入和结果展示等. 服务层为应用层提供服务支持,如用户管理服务.购物车服

外观模式-分层架构,方便维护遗留下的大型的系统

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 public class Facade {     /**      * @param args 外观模式      */     One one;     Two two;     Three thr

什么是分层架构模式

分层(Layer)模式是最常见的一种架构模式. 分层描述的是这样一种架构设计过程:从最低级别的抽象开始,称为第1层.这是系统的基础.通过将第J层放置在第J-1层的上面逐步向上完成抽象阶梯,直到到达功能的最高级别,称为第N层. 因而分层模式就可以定义为:将解决方案的组件分隔到不同的层中.每一层中的组件应保持内聚性,并且应大致在同一抽象级别.每一层都应与它下面的各层保持松散耦合. 分层模式的关键点在于确定依赖:即通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护. 对系统

软件架构模式-分层架构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应用的实际标准,因此很多的架构师,设计师,还有程序

分层与架构模式

1 企业应用计算的演变 这个我们应该是在学HTML的时候就已经学习了一部分了,现在再来回忆一些理论知识! •主机/哑终端的集中计算模式 大型主机管理和控制应用程序的所有方面,包括业务处理.数据管理和屏幕显示.使用者一般通过只有一个屏幕.一个键盘和一根主机连接线的“哑终端”与主机的应用程序进行交互. 缺点: 一台计算机中进行全部的处理. 应用程序非常难于维护. 专用特性使得它们非常难于集成其他平台上的其他应用程序 •客户机/服务器计算模式 –分布式客户/服务器 (Client/Server,简称C

企业应用架构之分层 - 总结

原网址将会不断更新 :   作程的技术博客  <企业应用架构之分层 - 总结> it.zuocheng.net 常见分层架构模式 三层架构 3-tier architecture 微软.net 体系推荐的分层结构,因此早期在ASP编码的系统中被广泛应用,同时也被其他语言广泛借鉴. 表现层, Presentation layer(PL) 主要负责数据的输入接口和输出.输入指在WEB.客户端或为外界提供的API的数据请求接口:输出则是Web界面.客户端输出.API的数据输出. 页面模版. 对外AP

《大型网站技术架构》读书笔记二:大型网站架构模式

一.分层 最常见的架构模式,将系统在横向维度上切分成几个部分,每个部分单一职责.网站一般分为三个层次:应用层.服务层和数据层,其具体结构如下图所示: 通过分层,一个庞大系统切分成不同部分,便于分工合作和维护. 但是,分层架构也有一些挑战:①必须合理规划层次边界和接口:②禁止跨层次的调用及逆向调用. 二.分割 分割是在纵向方面对软件进行切分->将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,有助于软件开发和维护,还便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力. 三.分布

MVC架构模式

MVC架构模式 参考: MVC框架_百度百科https://baike.baidu.com/item/MVC%E6%A1%86%E6%9E%B6/9241230?fr=aladdin MVC框架 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被