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

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. python Map()和reduce()函数

    Map()和reduce()函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函 ...

  2. Openstack组件部署 — Nova_安装和配置Controller Node

    目录 目录 前文列表 Prerequisites 先决条件 To create the databases To create the service credentials Create the C ...

  3. Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用

    文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...

  4. Linux下使用java获取cpu、内存使用率

    原文地址:http://www.voidcn.com/article/p-yehrvmep-uo.html 思路如下:Linux系统中可以用top命令查看进程使用CPU和内存情况,通过Runtime类 ...

  5. 剑指offer——44连续子数组的最大和

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  6. 并发编程(五)——GIL全局解释器锁、死锁现象与递归锁、信号量、Event事件、线程queue

    GIL.死锁现象与递归锁.信号量.Event事件.线程queue 一.GIL全局解释器锁 1.什么是全局解释器锁 GIL本质就是一把互斥锁,相当于执行权限,每个进程内都会存在一把GIL,同一进程内的多 ...

  7. 21-7-数组相关api

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. idea一直在copying resources或者一直在build,卡住不动,问题已解决

    IDE在启动项目的过程中,一直copying,或者是build一直卡住,需要在modules中配置下,把target文件夹移出resource folder 同时,在此之前,我还屏蔽了项目中pom.x ...

  9. GCloud SDK 遇到的错误记录

    eclipse 环境 1.调用 SetAppInfo 方法返回 -1 语音id 和 key 设置正确 ,各种检测都没问题 解决办法 把安卓工程目录下 obj 文件价删除 ,把sdk 替换成以前能用的老 ...

  10. ros语音交互(五)移植科大讯飞语音识别到ros

    将以前下载的的语音包的 samples/iat_record/的iat_record.c speech_recognizer.c speech_recognizer.c 拷贝到工程src中, linu ...