概述
软件分层分为物理分层和逻辑分层,物理上的分层使软件的每一层都运行在不同的机器上,逻辑分层指把软件分成几个模块层次,然后一起开发。我们说的三层架构是指逻辑上的分层。
三层架构
数据访问层(DAL)
职责
就是和数据源(数据库或其他文件)打交道(增、删、查和改这些具体的操作,也包含之间的连接)。
开发原则
只提供对数据源的直接操作,不要包含任何业务相关逻辑上的处理。
界面层(UI)
职责
向用户显示特定数据或者采集用户的输入信息和操作。
开发原则
符合用户要求(用户的喜好);只提供显示必要数据和采集用户操作功能,不包DLL层的职责。
业务逻辑层(BLL)
职责
执行业务逻辑运算。UI<—>BLL;UI<—>BLL<—>DAL;
开发原则
负责处理业务逻辑,封装要到位。
疑问解答
Model也是三层架构中的一层吗?
Model不是三层架构中的一个层次,三层架构只有三层(DAL、UI和DLL),这个分层的出现只是一个逻辑上分法,也就是说,我们在做一个具体三层程序的时候,我们不是只建立三个程序集,通常我们还要建立一个Model程序集,Model程序集创建的主要目的也是为了解耦,Model里面是实体类,在DAL、UI和DLL中都被应用到,但Model都不引用他们,在具体写程序的时候才体现出Model来,有时候Model会以另一种形式直接在DLL程序集中创建了,所以,三层架构从逻辑上划分只有三层。
DAL、UI和DLL之间是怎么应用的呢?
DAL不引用BLL和UI;BLL引用DAL;UI引用BLL。三层架构是为了使各层之间分开,较少耦合,所以,这三层都有自己各自的程序集。
总结
实践才是王道,所以在理论这块花的时间比较少,会通过具体项目和看别人的文章来弥补这些的。