看了很多关于三层的博客,感觉还是理解得不是很到位,边学边总结,先谈谈我对三层的理解。
一、三层是什么
这里的三层当然指的是逻辑上的三层,将整个业务应用分为:用户层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
二、为什么要分层
1、分工明确。机房第一遍的时候就会考虑这样的问题:这段代码在这个窗体可以用,在那个窗体也可以用,那到底该分在哪里。其实这个问题就是分工不明确造成的,第一遍那是相当的混乱。现在看看,真是不忍直视。当初还觉得自个儿做的挺不错的,真是汗颜啊。
2、降低耦合。解耦的作用就不用我说了,降低各层的依赖,利于排错,利于变动,利于维护。
3、让结构清晰,便于开发人员对系统整体的把握和理解。
三、三层是干什么
先来看一张图。
【用户层UI(User Interface)】
1、作用:①向用户展现特定业务数据。②采集用户的输入信息和操作。③特定的数据显示给用户。
2、原则:只负责显示和采集用户操作,不包含任何业务相关的逻辑处理。
【数据访问层DAL(Data Access Layer)】
1、作用:①从数据库加载数据。②向数据库写入数据。③从数据库删除数据。
2、原则:只提供基本的数据访问,不包含任何的业务逻辑。
【业务逻辑层BLL(Business Logic Layer)】
1、作用:①从DAL中获取数据,供UI显示。②从UI中获取用户指令和数据,执行业务逻辑。③从UI中获取用户指令和数据,通过DAL写入数据源。
2、原则:负责处理业务逻辑。通过调用UI传来的用户指令,执行业务逻辑,在需要访问数据库的时候,直接交给DAL进行处理。处理完成后,返回必要数据或提示给UI。
四、三层的优缺点(来自百度百科)
【优点】
①无需开发客户端软件,维护和升级方便。②可跨平台操作。③具有良好的开放性和可扩充性。④便于数据库移植。⑤安全性好。⑥资源重用性好。
【缺点】
有时会导致级联的修改。
五、小结
三层分为UI层、BLL层、DAL层。用户层UI只能调用业务层BLL,数据层DAL只能对数据库进行操作,其他的工作属于业务层。实体层供各层调用。各层分工明确,便于后期的升级和维护。