前言

      三层架构是将整个项目业务分成表示层,业务逻辑层,数据访问层,区分层次的目的是为了实现“高内聚,低耦合”的思想。在软件体系架构设计中,分层式结构是最为常见,也是最为重要的一种结构。

简介

表示层

    位于最外层(最上层),最接近用户。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。也就是我们所说的前台,它的存在只提供对于外观显示方面的调整,不应该在表示层中添加任何不相干的工作。

业务逻辑层

    业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。

数据访问层

    有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。

三层架构设计的理解

优缺点

优点:

1、开发人员可以只关注整个结构中的其中某一层。

2、可以很容易的用新的实现来替换原有层次的实现。

3、可以降低层与层之间的依赖。

4、有利于标准化。

5、利于各层逻辑的复用。

6、结构更加的明确。

7、在后期维护的时候,极大地降低了维护成本和维护时间。

缺点:

1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。

2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

3、增加了开发成本。

规则

1.我们通常用UI层,BLL层,DAL层来分别表示表示层,业务逻辑层和数据访问层。

2. UI层只能作为一个外壳,不能包含任何业务逻辑的处理过程。

3. 设计时应该从BLL(业务逻辑层)出发,而不是UI出发. BLL层在API上应该实现所有业务逻辑的处理,以面向对象的方式。

4. 不管数据层是一个简单的SqlHelper也好,还是带有Mapping过的Classes也好,应该在一定的抽象程度上做到系统无关。

总结

设计三层架构的目的是为了将复杂问题简单化,如果一个项目仅仅用一个简单的WebApplication就可以完成,那么为之设计三层架构反倒是将简单问题复杂化了。而且三层架构是很适合团队共同开发的设计方法,将分工明确起来,技术能力强的可以只完成相对复杂的任务,而新手也能通过完成相对简单的工作参与进项目的开发,不仅使得每个人都体验到了开发的乐趣,也大大提升了项目的开发效率。

相关文章: