1、三层架构的优势:

  • 适应变化、利于维护:项目需求往往随市场的变化而发生变化,三层架构通过将各功能模块分离,提高了项目的可维护性和代码的可重用性。
  • 适于协作开发。
  • 主流趋势,越来越多的的企业在开发项目使用三层架构做为项目的基础架构。三层架构在将来会有更大的市场。

2、三层架构包括哪些层?

数据访问层(Database access layer)、业务逻辑层(business logical layer)、表示层(User Interface)

数据访问层:封装了所有与数据库的交互操作。即对数据库的增、删、改、查操作,不做业务逻辑的判断。

过去使用ADO.NET连接数据库需要编写固定格式的代码,比如打开数据库连接,关闭数据库连接等。在面向对象的课程中,我们在每一个数据库访问层代码中编写重复的ADO.NET代码。那么大家有没有想到重用这些代码呢?这里我们使用了一个封装了ADO.NET方法的类—SqlHelper类,用来提高数据访问代码的可重用性。

针对模型层中的每一个类,数据访问层都有一个对应的数据访问类。比如针对User实体类,有一个对应UserService类,专门处理有关User表的数据。

3、三层深入理解

1. 复杂项目不能把SQL语句直接写到界面里,不模块化、难以维护,应该采用三层架构。先慢慢吸收,然后理解。Web开发中的三层机构也是同样的结构。还有更复杂的三层架构和多层架构。

2. 三层的组成

  • 界面层UI
  • 数据库访问层DAL
  • 业务逻辑层BLL

对数据进行操作的代码写在DAL中,一般都是SQL语句,DAL只有对数据的操作,不能有逻辑判断。

3. 三层架构图

4. 三层实战

1. 命名规则:DAL层,一般使用表名+Service,例如:EmpService。

BLL层,一般表名+BLL,例如:Emp表在BLL层命名为EmpBLL

但是这里注意一点:BLL不是简单对DAL层的转发,还包含业务逻辑。例如:“未经审核的数据不恩能够删除”这样的业务逻辑就放在BLL中。

2. 三层的有点

UI层和BLL打交道,不用处理SQL语句;开发更方便,更不容易出错。一般,UI层中没有复杂的代码,解耦合,容易改变UI层技术,如果从Winform改到asp.net只需要修改UI就可以了,如果由MsSql改成Oracle,只需要修改DAL即可。

Model是在三层中传递数据的,而且Model不属于三层中的任意一层。

那么各层之间使用Model(实体类的作用是什么呢?)

表示层中使用实体类

  1. 将解析实体对象封装的数据展示给用户。
  2. 将用户请求的数据封装到实体对象中。

业务逻辑层使用实体类

  1. 将接受到的实体对象传递到下一层。
  2. 根据用户请求对实体对象中的数据进行处理。

在数据访问层中使用实体类

  1. 将数据库中的数据封装到实体对象中或将多个实体对象封装成集合。
  2. 将实体对象中的数据保存到数据库中。

5. 三层的效率

三层一般会比不分层慢,但是为了分工明确,这样的少量的性能下降时可以接受的,很多时候效率不是唯一追求因素。

版权声明:本文为itchenguo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/itchenguo/p/11021947.html