三层架构之再学习
【前言】
三层学习是为七层奠定基础的重要一环节,自己之前在学习三层的时候,只是看了王继彬老师的视频,然后边看边跟着老师的脚步敲代码,实现老师所说的三层登录。当时敲完之后也没有好好理清各个层之间的关系,导致现在敲七层的时候无从下手。
总之一句话:“欠下的总是要还的”。明白了脚踏实地的走好自己所走的每一步,不要急于求成。
Ok,Nonsense not much said, let’s get started。
【内容-who-what-why】
三层都包含哪三层呢? ——三层中分别有:UI(显示层)、BLL(业务逻辑层)、DAL(数据访问层)。
三层都是做什么用的呢?为什么要有用三层呢?
三层结构从逻辑上划分VS物理上划分:
物理:显示层/业务层/数据层
逻辑:UI/BLL/+DAL/DB
严格来说以上三层还包含数据库层(以上三层的划分是在数据库层智商而划分的,所以三层中就没有直接包含数据库)
各层之间的应用场景都是什么呢?为什么要使用三层架构?什么情况下需要使用?
- 什么情况下需要使用?
- 即有数据访问层又有业务层
- 什么情况下不需要使用?
- 简单 、没有真正的数据存储层
- 总结:当业务层有一定的复杂度之后就可以用三层架构。 -
各层之间都有什么作用呢?
1、数据访问层(DAL)的作用:
- 从数据源加载数据(select)
- 向数据源写入数据(Insert/Update)
- 从数据源删除数据(Delete)
DAL中常用的技术 - ADO.NET+SQL语句(ADO是数据访问对象)
- O/R Mapping框架 NHiberate
- 访问SQL Server数据库时Linq to SQL
2、显示层(UI)的作用: UI的作用
向用户展现特定业务数据
采集用户的输入信息和操作UI设计的原则
用户至上,兼顾简洁UI中常用的技术
WindowsFrom:From、Control
ASP.NET:aspx、ascx、master、html
在满足用户需求的前提下,尽量让画面简洁明了。
3、业务逻辑层(BLL)的作用
BLL的作用
从DAL中获取数据,以供UI显示用
从UI中获取用户指令和数据,执行业务逻辑
从UI中获取用户指令和数据,通过DAL写入数据源BLL的职责机制
UI—>BLL—>UI
UI—>BLL—>DAL—>BLL—>UI各层之间具体应用——原则
- DAL只提供基本大的数据访问,不包含任何业务相关的逻辑处理。
- UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。
- BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI.
-
各层之间的引用关系:
-UI—>BLL—>DAL
DAL所在程序集不引用BLL和UI
BLL需要引用DAL
UI直接引用BLL,可能会简介引用DAL
以上内容介绍了三层分别是哪三层以及三层的作用是什么?下面我们来举一个生活中的小例子,让我们联系生活易于理解。引言:
大家都很清楚,去饭店吃饭,服务员只管接待客人,出事只管烹炒客人要的美食,采购员只管按客人需求采购肉、海鲜、蔬菜,他们各司其职、共同协作为客人提供美食。
三层的特点:
我们现在讲的三层架构,就是用这样工作的,他们三者中任何依着发生变化时都不会影响到其他两者的正常工作,so体现了三层的“高内聚,低耦合”的特点。
三层具体的描述:
从图中我们可以看到三层分别为:表达层(UI、用户界面层)、业务逻辑层(BLL)、数据访问层(DAL)。简单地说一下他们的作用:UI:为用户提供交互操作界面;BLL:负责关键业务的处理和数据传递;DAL:实现数据库访问。这里我就不多说了,因为大家在其他地方会看到很多更详细的说法,但总的来说,核心就是这个了。
下面看看他们之间的依赖关系:
简单解释一下,很简单,记住你的代码中所有的三层项目都会在一个解决方案中,应用关系是上面的关系就对了,之后会说代码的时候,就不说这个了。
搭建三层的步骤:
(1)搭建表达层(window)
(2)搭建业务逻辑层(类)
(3)搭建数据访问层(类)
(4)实现各层之间的相互依赖
-
-