三层结构(DAL,BLL,UI)---学习整理

三层架构整理 一、什么是三层架构? 三层架构主要是指将业务应用规划中的表示层 UI、数据访问层 DAL 以及业务逻辑层 BLL,其分层的核心任务是" 高内聚低耦合 "的实现。在整个软件架构中,分层结构是常见和普通的软件结构框架,同时也具有非常重要的地位和意义。这种三层架构可以在软件开发的过程中,划分技术人员和开发人员的具体开发工作,重视核心业务系统的分析、设计以及开发,提高信息系统开发质量和开发效率,进而为信息系统日后的更新与维护提供很大的方便。 UI(表现层): 主要是指与用户交互的界面。用于接收用户输入的数据和. 阅读详情

从下往上一层一层

 

———————————————————————————————————————

数据访问层DAL(data access layer)

这一层主要就是完成把数据库的数据跟实体映射起来,然后完成数据的增、删、改、查操作

一般包括以下几部分

Model   定义数据模型,数据实体

 

DBUitil 对数据库中数据的具体操作

 

DAL数据和实体对象映射

———————————————————————————————————————

业务逻辑层BLL(business logical layer)

这一层就是针对相应的对象,进行一些具体的操作,实现相应的功能。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间”,启着承上启下的关键作用。

 

这一层根据不同的需求,划分成不同的部分来完成不同的功能

———————————————————————————————————————

表示层(UI/webUI

提供给用户,用于数据显示,响应用户操作!

具体实现,了解不多,以后再详细学习。

———————————————————————————————————————

 

最后,这三层结构是从下向上一层一层的调,理想的分层式架构,应该是一个支持可抽取、可替换的抽屉式架构。

 

优缺点

优点:

1、开发人员可以只关注整个结构中的其中某一层;

2、可以很容易的用新的实现来替换原有层次的实现;

3、可以降低层与层之间的依赖;

4、有利于标准化;

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

缺点:

1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。

2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

 

规则

三层结构的程序不是说把项目分成DAL, BLL, WebUI三个模块就叫三层了, 下面几个问题在你的项目里面:

1. UILayer里面只有少量(或者没有)SQL语句或者存储过程调用, 并且这些语句保证不会修改数据?

2. 如果把UILayer拿掉, 你的项目还能在Interface/API的层次上提供所有功能吗?

3. 你的DAL可以移植到其他类似环境的项目吗?

4. 三个模块, 可以分别运行于不同的服务器吗?

如果不是所有答案都为YES, 那么你的项目还不能算是严格意义上的三层程序. 三层程序有一些需要约定遵守的规则:

1. 最关键的, UI层只能作为一个外壳, 不能包含任何BizLogic的处理过程

2. 设计时应该从BLL出发, 而不是UI出发. BLL层在API上应该实现所有BizLogic, 以面向对象的方式

3. 不管数据层是一个简单的SqlHelper也好, 还是带有Mapping过的Classes也好, 应该在一定的抽象程度上做到系统无关

4. 不管使用COM+(Enterprise Service), 还是Remoting, 还是WebService之类的远程对象技术, 不管部署的时候是不是真的分别部署到不同的服务器上, 最起码在设计的时候要做这样的考虑, 更远的, 还得考虑多台服务器通过负载均衡作集群

所以考虑一个项目是不是应该应用三层/多层设计时, 先得考虑下是不是真的需要? 实际上大部分程序就开个WebApplication就足够了, 完全没必要作的这么复杂. 而多层结构, 是用于解决真正复杂的项目需求的。

 

 

参考资料:

http://blog.csdn.net/Luckeryin/archive/2008/12/06/3458750.aspx

http://www.cnblogs.com/soonet/articles/824989.html

三层架构(自我理解) 三层架构已经学了一段时间,一直想做一个比较完整、比较完美的总结。但是左思右想,不知道如何下笔。都说万事开头难嘛,今天整理了一下凌乱的思路,哎,还是没整理好,想到哪就说到哪吧。 初学者很不理解: 1,什么是三层? 2,为什么使用三层? 3,三层与以往使用的两层相比有什么不同?它的优势在哪里? 4,如何学好三层?如何应用三层? 对于三层我左思右想,如何与实际相联系。好嘛,昨晚突然有了“灵感”。还记得大话设计模式里第23章大鸟和小菜吃羊肉串的故事——由在小摊吃到饭店吃引来的一个命令模式(当然今天不是研究命令模式) 阅读详情

相关推荐

笔记:使用Materials Studio计算聚合物的玻璃化转变温度

使用Materials Studio计算聚合物的玻璃化转变温度。

FXJgogogo的博客 1859

IT名词术语总汇

正向控制       子类调用父类,晚辈调用长辈,这中调用方向称为正向控制. 反向控制(IOC- inversion of control)       父类调用子列,长辈调用晚辈,于正向控制相反.   MVC设计模式…   三层架构…  他们细分之后得到的是:View(UI)BIZBLL)、DAO(DAL)、Entity(Model)、Controller  MVC把...

killalllsd的专栏 224

基于PLC桥式起重机控制系统(完整资料).doc

基于PLC桥式起重机控制系统(完整资料).doc

C#的三层架构:UIBLLDAL

C#的三层架构

weixin_40362806的博客 3467

三层架构(UIBLLDAL

讲述了三层架构:表示层 / 表现层 / 界面层(UI)、业务逻辑层(BLL)、数据访问层(DAL

xiaoyu_alive的博客 1万+

ASP.NET的三层架构(DAL,BLL,UI)

BLL 是业务逻辑层 Business Logic Layer DAL 是数据访问层 Data Access Layer ASP.NET的三层架构(DAL,BLL,UI) 图形表示三层结构. 其中web即为USL层 web –> bll –> dal | | | | ...

huang6825的专栏 2160

知识点滴:持久层,DAO,API,DALBLL,DLL,csproj,sln

持久层(Persistence): 持久层只是一个逻辑概念而已,主要任务是负责把数据保存起来,一般是指保存至数据库或者文件,也可以负责完成与之相关的行为。 持久层指的是把数据长期保存起来,如数据库把数据长期保存在硬盘里,XML也可以长期保存数据,还有如果把数据存放到指定文件中,也可以成为持久层。 持久化可以理解为动词。Hibernate做的就是持久化的操作,主要是对数据库底层的OR映射,这样...

weixin_34292402的博客 379

BLLDAL、MODEL三层架构+UI

(先稍作整理,后续给出个人理解) ASP.NET的三层架构(DAL,BLL,UI) 图形表示三层结构. 其中web即为USL层 web –> bll –> dal |           |          | |           V          | +–> model 一、三层体系架构 1.表示层(USL):主要表示WEB方式,也可以表示成WI

jungleli3的专栏 4903

C#三层架构详解--以系统登录为例

引言         通常意义上的三层架构是将真个业务应用划分为:界面层(UI层)、业务逻辑层(B层)、数据访问层(D层)。对于复杂的系统分层让结构清晰,便于开发人员对系统进行整体的理解、把握;而且便于维护,系统基本的架构可以通过工具自动生成代码。当数据库发生改变时,只用重新生成代码,改动业务逻辑层的部分代码即可。下面笔者通过一个简单的登录实例来给大家介绍一下三层架构 简介

知世俗而不世俗 2万+

三层架构(VB)

http://blog.csdn.net/hanxuemin12345/article/details/8544957 这位老师写的很好,我初学C#,拿来jie

llyly3的专栏 2428

系统三层结构整理

最近查看了一下微软的petshop4.0,看了一下体系结构,顺便整理了一下自己理解的三层结构。首先,看下图: 首先,从顶层上主要包含了4个部件:DAL(数据处理层)、BLL(业务逻辑层)、UI(用户接口层)、Model(实体模型)。其中前三者就是人们常说的三层结构DAL:数据处理层。主要处理数据来源,如果数据从数据库、网络、文件等等来,则这部分业务将由数据处理层来完成。比如从数据

历史的尘埃 947

java面试常见,三层架构,Java进阶推荐

总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

m0_74931167的博客 924

三层架构详解

原文地址:https://blog.csdn.net/hanxuemin12345/article/details/8544957/ 一直想做一个比较完整、比较完美的总结。但是左思右想,不知道如何下笔。都说万事开头难嘛,今天整理了一下凌乱的思路,哎,还是没整理好,想到哪就说到哪吧。 初学者很不理解: 1、什么是三层? 2、为什么使用三层? 3、三层与以往使用的两层相比有什么不同?它的优势...

一只苟延残喘的卑微蝼蚁 417

三层架构理解与分析

三层架构已经学了一段时间,一直想做一个比较完整、比较完美的总结。但是左思右想,不知道如何下笔。都说万事开头难嘛,今天整理了一下凌乱的思路,哎,还是没整理好,想到哪就说到哪吧。 初学者很不理解: 1,什么是三层? 2,为什么使用三层? 3,三层与以往使用的两层相比有什么不同?它的优势在哪里? 4,如何学好三层?如何应用三层? …… 这篇博客里我会给大家一一解释一下,略懂皮毛忘大家...

相见不如怀念 647

JavaEE 三层架构与MVC的区别与联系

0:前言 最近在学习java,对JavaEE三层架构与MVC设计模式的关系与区别不太理解,在网上找了好多资料,整理如下文章。如有不对欢迎指出来,大家一起学习。 1:三层架构 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。 1、表现层(U...

gujianzhou_2016的博客 1077

深入浅出三层架构

这几天看了不少三层架构的资料,整理整理 ——故写篇博文谈谈自己的看法。 三层架构概念: 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想...

chichengbu3180的博客 260

MVC设计模式和三层结构(适合初学者)

题外话: 我们经常把MVC模式和三层架构联系在一起,一旦让你谈谈MVC设计模式,不可避免的总是会说到三层架构,这对于一些高手和大佬来说并没有什么问题,但是对于一些新手,想要学习MVC设计模式的小白来说,有时候就不太友好了。大多人(包括我)刚开始学的时候,大部分都是看大佬们的博客学习,但是正是如此,被大佬们的博客搞得头晕,很容易将MVC设计模式和三层架构搞混,或者以为是同一个东西,...

小咸白鱼的博客 8855

经典三层 变 七层

机房总结 虽然自己的笔记还没有整理成博客,但是,我认为,作为第一遍重构完成的咱,首先要先写一下对机房整体的认知。 首先说这个三层OR七层 当时,话说是一个多月前,刚刚把三层的登陆实现,霍霍师傅来查看我的劳动成果,十分大方的表扬了我几句,后来给我说了一句话,我懵了——“你是打算先敲三层然后再转七层?还是直接用七层啊?”我滴个乖乖,三层还没弄懂,怎么又出来个七层?什么是...

150
上一篇: oracle10客户端的配置(图解)
下一篇: 我整理的xml读写操作(sax方式)
bigbighello
博客等级 码龄17年 6粉丝 5原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值