版权声明:本文为博主原创文章,未经博主同意不得转载。

https://blog.csdn.net/lhc2207221755/article/details/24802053

    之前看过非常多关于三层的博客,所以这次自己重学三层之前,就给自己提了几个问题:一。三层指的是哪三层,每层的作用是什么? 二,为什么要分三层?  三,三层结构的优缺点?  四,怎样分层?

     以下。让我们来逐一回答这些问题。

     一。三层指的是哪三层,每层的作用是什么?

         三层架构(3-tierarchitecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据訪问层(DAL)。

     

各层作用:

1,数据訪问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,详细为业务逻辑层或表示层提供数据服务.

 

2,业务逻辑层:主要是针对详细的问题的操作。也能够理解成对数据层的操作。对数据业务逻辑处理,假设说数据层是积木。那逻辑层就是对这些积木的搭建。

 

3,表示层:主要表示WEB方式。也能够表示成WINFORM方式。WEB方式也能够表现成:aspx,假设逻辑层相当强大和完好,不管表现层怎样定义和更改,逻辑层都能完好地提供服务。

   二,为什么要分三层?

    

区分层次的目的主要是为了实现“高内聚,低耦合”,并充分发挥三层的长处.

   三,那么。三层都有哪些优缺点呢?

 长处

1、开发者能够仅仅关注整个结构中的当中某一层;

2、能够非常easy的用新的实现来替换原有层次的实现;

3、能够减少层与层之间的依赖;

4、有利于标准化;

5、利于各层逻辑的复用。

6、结构更加的明白

7、在后期维护的时候,极大地减少了维护成本和维护时间

 

 缺点

1、减少了系统的性能。

这是不言而喻的。

假设不採用分层式结构,非常多业务能够直接造訪数据库。以此获取对应的数据,现在却必须通过中间层来完毕。

2、有时会导致级联的改动。

这样的改动尤其体现在自上而下的方向。假设在表示层中须要添加一个功能。为保证其设计符合分层式结构,可能须要在对应的业务逻辑层和数据訪问层中都添加对应的代码。

3、添加了开发成本。

四,怎样分层的问题

1:数据訪问层:主要看你的数据层里面有没有包括逻辑处理,实际上他的各个函数主要完毕各个对数据文件的操作。而不必管其它操作。

 

2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。

 

3:表示层:主要对用户的请求接受,以及数据的返回,为client提供应用程序的訪问。

 

三层(3-tier architecture)基础的更多相关文章

  1. hadoop from rookie to ninja - 1. Basic Architecture(基础架构)

    1. Daemons(守护进程) 新老架构 老的: Apache Hadoop 1.x (MRv1)   新的: Apache Hadoop 2.x (YARN)-Yet Another Resour ...

  2. 【WPF系列】基础学习-WPF设计模式概览

    引言 “设计模式”这个让程序员提起来就“酷”的东东,着实让让初学设计模式的programer自我陶醉一番.太多的经历,告诉我们“凡事都要个度,要学会适可而止”,否则过犹不及.“设计模式”也一样,切莫为 ...

  3. 三层与MVC

    三层架构(3-tier architecture) 我们平时总是将三层架构与MVC混为一谈,殊不知它俩并不是一个概念.下面我来为大家揭晓我所知道的一些真相. 首先,它俩根本不是一个概念. 三层架构是一 ...

  4. b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释

    我最近一直在找适合将来用于公司大型bs,b2b b2c的基础架构. 实际情况是要建立一个bs架构b2b.b2c的网站,当然还包括wap站点.手机app站点. 一.现有公司技术人员现状: 1.熟悉asp ...

  5. 从MVC和三层架构说到SSH整合开发

    相信很多人都认同JavaWeb开发是遵从MVC开发模式的,遵从三层架构进行开发的,是的,大家都这么认同.但是相信大家都会有过这样一个疑问,if(MVC三层模式==三层架构思想)out.println( ...

  6. Sql注入基础原理介绍

    说明:文章所有内容均截选自实验楼教程[Sql注入基础原理介绍]~ 实验原理 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击, ...

  7. SSH和三层架构的MVC模式的对应关系

    1.MVC(Model-View-Controller)设计模式: 首先让我们了解下MVC(Model-View-Controller)的概念: MVC全名是Model View Controller ...

  8. 【JSP】el、jstl、MVC、三层架构

    JSP[Java Server Pages] [概念] java服务器页面 简化的servlet设计 html语法中扩展java 跨平台 JSP全名为Java Server Pages,中文名叫jav ...

  9. 【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对照

    近期在开发小组在研究:BS项目中是利用'MVC框架'还是继续沿用'三层'的问题. 由于曾经的.NET项目大多数都是利用三层开发的,所以大多数人都可以对三层进行熟练地运用.而项目的開始我们也曾听说过MV ...

随机推荐

  1. thinkphp+layui多图上传(1)thinkphp5+layui实现多图上传保存到数据库,可以实现图片自由排序,自由删除。

    公共css代码 <style> .layui-upload-img { width: 90px; height: 90px; margin: 0; } .pic-more { width: ...

  2. python3使用requests和requests_toolbelt上传文件

    https://blog.csdn.net/summerpowerz/article/details/80293235 https://blog.csdn.net/lhh08hasee/article ...

  3. System.getenv()和System.getProperty()

    System.getenv() 方法是获取指定的环境变量的值. System.getenv(String str) 接收参数为任意字符串,当存在指定环境变量时即返回环境变量的值,否则返回null. S ...

  4. Git 学习第四天

    我们已经知道,通过命令 git remote add origin git@github.com/Your.name/file.git 可以连接远程仓库,那么,假如我现在想切换另个一远程仓库的连接应该 ...

  5. 20140513 matlab画图

    1.matlab画图 x1=[1.00E-06,2.00E-06,4.00E-06,9.00E-06,2.00E-05,4.00E-05,8.00E-05,2.00E-04,4.00E-04,7.00 ...

  6. opencv bwlabel

    int bwLabel(const Mat& imgBw, Mat& imgLabeled) { Mat imgClone = Mat(imgBw.rows + , imgBw.col ...

  7. Day 21 python :面向对象 类的相关内置函数 /单例模式 /描述符

    1.isinstance(obj,cls) 检查obj是否是类cls的对象: 备注:用isinstance 的时候,产生实例后,会显示实例既是父类的实例,也是子类的实例 class Mom: gend ...

  8. Django项目从新建到运行

    返回主目录:Django框架 内容目录: 一.安装之前 二.Django安装 三.创建项目 四.配置 一.安装之前 安装django之前你需要注意的几个事项: 1.版本问题 建议使用1.11.11左右 ...

  9. [LOJ#6468.] 魔法

    官方题解 看了题解才会做.. 首先考虑如果所有询问的点都是[1,n]的做法,如果询问是[l,r]只需要把多余的去掉就好了 然后要把问题转化为一个点对其他附近的点的贡献 记$pre[i]$为第i个位置的 ...

  10. leetcode-168周赛-1296-划分数字为连续数字的集合

    题目描述: 自己的提交: class Solution: def isPossibleDivide(self, nums: List[int], k: int) -> bool: c = col ...