三层学习总结

 

三层结构的划分方式分为两种即:物理和逻辑上的划分。物理上的划分如图:


逻辑上的划分:UI(表示层)BLL(业务逻辑层)、 DAL(数据访问层)

本篇博客说逻辑上的划分:

 

UI(表示层):表示层指直接与用户交互的。位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。提现一个原则:用户至上,兼顾简介。

BLL(业务逻辑层):

DAL(数据访问层):简单的说就是和数据源打交道,即:加载(select)、写入(insert/update)、删除(delete)数据。其它的数据访问层不关系。

在我们软件设计的过程中,一般还有一个实体层(Model层),它不属于三层中的任何一个层,但是它的数据却要体现在所有的三层中。即UIBLLDAL中都需要引用它。

实体层的作用:

1.对于大量的数据来说 用变量做参数显示不合适 比如 我要把某个学生的所有信息传到下层 包括姓名 年龄 学号 班级......如果拿变量做参数那在你的方法中起码有N个参数 很容易造成参数匹配上的错误 而如果拿实体对象做参数则方便的多,只要传一个学生实体就可以了,然后在方法里通过get()set()属性获取或者设置实体对象里的成员属性值

 

2.实体对象实际上是对应着数据库里的每张表的,我们把表里的字段封装在1个实体对象里 当你想用哪个字段 你就就通过该实体对象的get() set() 把那个字段提取出来这比你临时创建1个变量要灵活的多 而且便于程序的维护和扩展.在实际的3层结构开发中,专门有个实体层,他的作用就是便于层和层之间的数据传递

 

3.实体体现了面向对象程序开发的思想,把大量的数据进行封装 然后传递.当然 如果只是1,2个参数,那么传递实体或者传递变量都可以。

在具体的使用过程中,我们需要按照一定的原则:

 

UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理;

BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。

DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理; 


在我们使用visual studio 学习的时候,我们需要对三层进行指定,DAL/BLL/UI分别在不同的程序集中。

各个层之间的引用关系

UI -> BLL ->DAL

DAL所在程序集不引用BLL和UI

BLL需要引用DAL

UI直接引用BLL,可能会间接引用DAL

三层的优缺点:

优点
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间

缺点
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。

这些就是我对于三层的理解,有些不到之处欢迎指正。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值