三层架构

原创 2016年08月31日 11:24:29

三层架构概述

三层分为物理上的三层和逻辑上的三层,物理上的三层包括:客户机(PC)、应用服务器、数据库服务器。逻辑上的三层,是我们需要学习的,分为显示层、业务逻辑层、数据访问层。此外还需要用到实体层,它不属于三层中的任意一层,它是独立于其他三个层次的,只能供其他层次进行引用,但是不能引用其他的三个层次。


三层简介:

(1)数据访问层(DAL)

DAL的作用:向数据源加载数据(Select);向数据源写入数据(Insert/Update);从数据源删除数据(Delete)。

(2)显示层(UI)

UI的作用:向用户展现特定业务数据;采集用户的输入信息和操作。

(3)业务逻辑层(BLL)

BLL的作用:从DAL中获取数据,以供UI显示用;从UI中获取用户指令和数据,执行业务逻辑;从UI中获取用户指令和数据,通过DAL写入数据源。

BLL的职责机制:UI ->BLL ->UI;UI->BLL->DAL->BLL->UI

三层应用原则:

(1)DAL只提供基本的数据访问,不包含任何的业务逻辑;
(2)UI只负责显示和采集用户操作,不包含任何业务相关的逻辑处理;
(3)BLL负责处理业务逻辑,通过获取UI传来的用户指令,执行业务逻辑,在需要访问数据源的时候,直接交给DAL进行处理,处理完成后,返回必要数据给UI。

应该注意:DAL/BLL/DAL分别在不同的程序集(Assembly)中,各个层之间的引用关系为
UI->BLL->DAL
即:DAL所在程序集不引用BLL和UI; BLL需要引用DAL ;UI直接引用BLL,可能会间接引用DAL。

三层的具体工作流程:


如果哪一层需要变化,只需要更改该层,不需要更改整个系统。层析清晰,分工明确,每层之间的耦合度降低,是面向对象编程思想的重要应用。

综上,三层架构的
优势:1、结构清晰,耦合度降低;2、可维护性高,可扩展性高;3、利用开发任务同步进行;容易适应需求变化。
劣势:1、降低了系统的性能。这是很明显的,如果不采用分层式结构,很多业务可以直接造访数据库,获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了代码量,增加了工作量。
每一种模式都会有它的优势与不足,这是必然的。
版权声明:本文为博主原创文章,未经博主允许不得转载。

(三层架构入门)最基本的三层架构搭建方法(详细过程及所有代码)

(三层架构入门)最基本的三层架构搭建方法(详细过程及所有代码)
  • jinlanyan
  • jinlanyan
  • 2015年07月10日 15:13
  • 2860

三层架构的原理及实现

三层架构 代码的可扩展性和系统的后期维护: 1、三层就很好的为我们解决了这个问题.让我们不必为了业务逻辑上的微小变化而迁至整个程序的修改,只需要修改商业逻辑层中的一个函数或一个过程; 2、增强了...
  • wenyusuran
  • wenyusuran
  • 2014年12月01日 15:29
  • 4087

三层架构下实现用户登陆C#

上篇文章讲到三层。接下来就通过一个实例具体的看怎么用三层实现用户登陆界面。   一、Model实体(LoginModel):          namespace LoginModel { ...
  • u010858791
  • u010858791
  • 2014年06月21日 17:10
  • 2308

用三层架构来做winform程序

三层架构是一种代码分层思想,简单的说就是将一个项目分为界面展示、业务逻辑、数据访问三层,各层之间保持一定的独立性,降低代码之间的耦合性,这样做的好处是显而易见的: 1、各层之间的改动不会影响到其他层(...
  • clb929
  • clb929
  • 2017年01月09日 22:56
  • 5196

对于三层架构的认识整理

三层架构并不是MVC,MVC是一个很早就有的经典的程序设计模式,M-V-C分为三层,M(Model)-V(View)-C(Control)。而web开发中的三层架构是指:数据访问层(DAL-Datab...
  • aa2397199142
  • aa2397199142
  • 2016年03月04日 11:19
  • 2196

三层架构(二)——为什么要用三层架构?

二、为什么要用三层架构?      1、分析       层次结构在现实社会中随处可见。记得有个笑话讲有个村长得意的向他的老婆吹牛:“全中国比我官大的只有四个人,乡长、县长、省长和国务院总理”,这个笑...
  • u010853701
  • u010853701
  • 2014年06月28日 17:18
  • 2113

[原创]java web三层架构程序实例

一、前言前几天我在这里发表过一篇文章是简单介绍java web三层架构的配置方法(包括连接池配置和一个简单测试方法),相信许多看过该文章的同学已经搭建起tomcat+ms sqlserver的jsp编...
  • woolceo
  • woolceo
  • 2005年10月19日 13:41
  • 10552

三层架构—简析

分层的目标是为了“高内聚,低耦合”,分层可将复杂的简单化,当需求需要改变时,你只需要该相应部分而不用大范围的修改。分层还提高了可维护性和可扩展性,但并不是所有的都要分层,业务逻辑简单,没有真正的数据存...
  • zhangzijiejiayou
  • zhangzijiejiayou
  • 2014年07月28日 11:03
  • 2457

三层架构和 MVC 模式的区别与联系

三层架构与MVC模式的区别与联系
  • qq_16603341
  • qq_16603341
  • 2017年04月22日 15:40
  • 658

如何搭建三层架构?

 如何搭建三层架构?(1)何搭建三层结构本节将通过一个简单的登录功能实现,讲述如何搭建三层结构。1.搭建数据访问层(1)打开VS 2005开发环境,依次选择"文件"→"新建"→"项目"命令,如图18-...
  • killerggf
  • killerggf
  • 2010年05月28日 14:44
  • 6725
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:三层架构
举报原因:
原因补充:

(最多只允许输入30个字)