三层是建立在面向对象的基础上设计的,分层的最高原则是高内聚,低耦合。三层架构将数据层、应用层和业务层分离,业务层通过应用层访问数据库,保护数据安全,利于负载平衡,提高运行效率,方便构建不同网络环境下的分布式应用。
1、三层架构概述
物理分类:显示层、业务逻辑层、数据层
逻辑分类:UI、BLL+DAL、DB
2、什么情况下使用三层架构?
业务复杂,需要独立数据存储。
3、三层的作用
3.1、显示层
UI的作用:向用户展现特定的业务数据;采集用户的输入信息和操作。
3.2、业务逻辑层
BLL的作用:从DAL中获取数据,供给UI显示用
从UI中获取用户指令和数据,执行业务逻辑
从UI中获取用户指令和数据,通过DAL写书数据源
3.3、数据访问层
DAL的作用:从数据源加载数据(Select)
向数据源写入数据(InsertUpdate)
从数据源删除数据(Delete)
4、具体应用原则
4.1、DAL只是提供基本的数据访问,不包含任何业务相关的逻辑处理
4.2、UI只负责显示和采集用户的操作,不包含任何的业务相关的逻辑处理
4.3、BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的
时候直接交给DAL处理,处理完毕后返回必要的数据给UI。
5、三层之间的依赖关系
数据访问层的类,直接访问数据库,实现基本记录操作。
业务逻辑层的类,调用相关的数据访问类,实现用户所需功能。
界面层:部署控件后,调用业务逻辑层的类,实现功能。
6、三层设计的优缺点
6.1、优点
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6.2、缺点
1、降低了系统的性能。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数
据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功
能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的
代码。
7、小结
刚刚开始学习三层的时候觉得很乱,慢慢的将思路理清了,在UI的类调用BLL类中的方法(或者是函数),然后BLL类在根据UI传递过来的信息在调用DAL类中的方法(或者函数),DAL类再根据BLL传递过来的信息再去访问数据源。