三层架构和普通的web站点的区别,只在于根目录下的一个/class目录,其结构如下
/class
└──/BLL 存放业务逻辑类
└──/Common 存放通用类
└──/DAL 存放单表数据访问类
└──/MOD 存放实体类
└──/MUL 存放多表数据访问类
└──class.asp 初始化通用类
这里有2处需要解释一下的.
第一,数据访问类分成了两个部分,单表操作和多表操作.
对于简单的系统,只是单表操作的数据类就可以解决问题了.但是要用到三层架构的都是复杂的系统,需要进行大量的多表操作. 这样的数据库操作不能简单地归在某一个数据表下,所以产生了多表数据访问类.
多表数据访问类的产生和命名,都是以业务为核心,例如MUL_Article类,就表示这个类用于处理以Article为核心的业务,它可能会涉及到文章分类,文章留言等等方面的数据表,但是核心内容仍然是Article.
有了多表数据访问类,单表数据访问类就不会那么臃肿凌乱了.
但是同时引发了另一个问题:如果某一个业务的数据库操作特别复杂,那么针对这个业务产生的多表数据访问类就会迅速扩大起来,而至臃肿不堪.对这一点,仍没有比较完美的解决方案.若是简单地处理的话,可以分成几个子业务的多表操作类. 目前我做的系统中尚未需要做到这一层扩展,所以没有花心思来完善这一点. 有需求的同仁可以对这里考虑一些好的解决方案.
这就是vbscript不支持继承的缺憾了.
第二,实体类的产生
实体类在创建的时候,是根据某一个数据表的结构来创建的,但是在使用中,往往会扩展一些新的属性.例如MOD_Article类会增加文章分类这样的属性,用以丰富这个实体类的内容.
所以实体类并不是和数据表一一对应的,这种灵活度需要把握得到,才能发挥好它的作用.机械地用数据表和实体类一一对应,往往会产生大批复杂而凌乱的实体类参数.这个到后面有机会进行实例讨论
class.asp文件的源代码如下,其功能大家一看便知道了.
<!--#include file="Common/Con_Convert.html"-->
<!--#include file="Common/Con_Error.html"-->
<!--#include file="Common/Con_Page.html"-->
<!--#include file="Common/Con_Data.html"-->
<%
Set Convert = new Con_Convert ' 类型转换
Set e = new Con_Error ' 错误处理
set page = new Con_Page '页面处理
set Data = new Con_Data '数据库处理
%>
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛