三层架构中多层的使用关系

来源:互联网 发布:c语言getchar位置输入 编辑:程序博客网 时间:2024/04/27 23:53

  在开发的过程中,我们会经常遇到一些关于设计模式和开发框架的问题。三层架构工厂设计模式其实是将经典的三层架构和工厂设计模式结合在了一切。本来想一个个层次的去把这里面各个层次的实现方法、顺序、作用写出来的,但是在网上搜索了一下,发现有个哥们儿已经写得很好了,所以我就copy了过来,加上些自己的理解,分享给大家。

 

  关于DALFactory,不管你是使用动软的代码生成器自动生成还是自己编写,对于初学者来说,这个东西都是相对较为抽象的一部分。DAL是Data Access Layer的缩写,DALFactory是用于创建数据访问对象的工厂,本质上是采用了抽象工厂的设计模式,目的是支持多种数据访问层。比如sql server和oracle两种实现;同时又利用了.net的反射机制,通过配置文件即可确定采用哪种数据访问实现。

 

  IDAL是数据访问层接口,这样做的好处是使业务逻辑层调用数据访问层的接口即可实现数据库的增删改等操作,业务逻辑层与数据访问层是一种抽象依赖的关系,而非具体依赖。我觉得要明白这些,首先需要有一定的编程经验,要懂得接口、抽象类等的作用,再研究设计模式和软件架构就相对较为轻松了。多看看现成的设计案例,对提升自己对该设计方法的理解是比较有好处的。

 

  下边就来看看使用动软代码生成器生成的各个工程项目文件各自的含义、作用和使用方法吧!

 

  一、含义

  1、WEB=表示层
 
  2、BLL=业务逻辑层

  3、IDAL=数据访问层接口定义

  4、Model=业务实体

  5、DALFactory=数据层的抽象工厂(创建反射)

  6、SQLServerDAL=SQLServer数据访问层 / OracleDAL=Oracle数据访问层

  DBUtility 数据库访问组件基础类

  二、项目引用关系

  1、Web 引用 BLL

  2、BLL 引用 IDAL,Model,使用DALFactory创建实例

  3、IDAL 引用 Model

  4、Model 无引用

  5、DALFactory 引用IDAL,通过读取web.config里设置的程序集,加载类的实例,返回给BLL使用

  6、SQLServerDAL 引用 Model和IDAL,被DALFactory加载的程序集,实现接口里的方法

  三、实现步骤

  1、创建Model,实现业务实体

  2、创建IDAL,实现接口

  3、创建SQLServerDAL,实现接口里的方法

  4、增加web.config里的配置信息,为SQLServerDAL的程序集


  5、创建DALFactory,返回程序集的指定类的实例

  6、创建BLL,调用DALFactory,得到程序集指定类的实例,完成数据操作方法

  7、创建WEB,调用BLL里的数据操作方法

  注意:

  1、web.config里的程序集名称必须与SQLServerDAL里的输出程序集名称一致

  2、DALFactory里只需要一个DataAccess类,可以完成创建所有的程序集实例

  3、项目创建后,注意修改各项目的默认命名空间和程序集名称

  4、注意修改解决方案里的项目依赖

  5、注意在解决方案里增加各项目引用