三层,故名思义,就是有三个层次。依次是显示层(View/UI)、业务逻辑层BLL(Business Logic Layer)和数据访问层DAL(Data Access Layer)。并不是所有的程序都要用三层架构,简单的问题复杂化岂不是一种愚笨的行为吗!如果我们做一个小程序,业务逻辑简单,没有真正的业务存储层,就不需要用到三层。但当你的业务复杂到一定的程度,当你的数据存取到一个独立的数据库或存储介质时就需要用到三层结构。
显示层
UI的作用就是向用户展现特定业务数据,采集用户的输入信息和操作,秉着用户至上,兼顾简介的原则就行了。那我们学过的VB来说,就是指的窗体及窗体代码。在这里它只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。
业务逻辑层
BLL用来从DAL中获取数据,以供UI显示用,还从UI中获取用户指令和数据,执行业务逻辑,通过DAL写入数据源。也就是说BLL负责处理业务逻辑。通过获取UI传来的操作指令,定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。
数据访问层
DAL从数据源中加载数据(Select),向数据源写入数据(Insert/Update),从数据源删除数据(Delete)。它只提供这些基本的数据访问,不包含任何业务相关的逻辑处理。
DAL/BLL/UI分别在不同的程序集中。它们各个层之间的引用关系为UI->BLL->DAL。DAL所在程序集不引用BLL和UI,BLL需要引用DAL,UI直接引用BLL,可能会间接引用DAL。
学三层中遇到的问题
1、粗心把Database写成Datebase
2、缺少打开数据库语句conn.Open()
总结
三层可以将程序各个业务分层,各个业务之间可以独立,有利于分工合作,提高效率。学习了三层之后,才知道自己做过的学生管理系统、机房收费系统有多差劲,不过什么都是慢慢练出来的。在接下来的机房重构中要好好将三层的知识运用上。