前面的准备工作都是在三层架构中的数据访问层,相关的两个数据访问的操作已经安排妥当,现在要开始进入到三层架构中的业务逻辑层.
这一层是三层架构的灵魂与核心,兼任控制中心,兼任资源调配中心,兼任通用功能整合中心......一切你所能想象的负责管理性质工作的集合.
它有如日月地中的地,有如天地人中的人,有如空假中的中,有如男女爱中的爱,有如叔本华的钟摆,有如电脑的操作系统......
对它有多么无限的重视,你的程序架构就有多么无限的健壮.
----还是先看看代码吧.
首先引入这个业务所需要的数据表访问类DAL_User,DAL_UserLog,还有涉及到的业务对象的实体类MOD_User.
数据表访问类在业务类中被实例化,然后在业务类中发挥它的作用,但是它不能被拿出业务类之外的范围使用,这点请谨记.
实体类在业务类中引用,但是不实例化.它是用在各个环节中传递数据的,所以在UI页面实例化.
UI页面中使用实体对象来集装数据有不少好处的,它不会让页面显得凌乱,传值的过程中也不会写一堆参数并且要排好顺序.
<!--#include file="../DAL/DAL_User.asp"-->
<!--#include file="../DAL/DAL_UserLog.asp"-->
<!--#include file="../MOD/MOD_User.asp"-->
<%
'
' User BLL Class:
'
Class BLL_User
Private T_User '在BLL的内部定义要用到的对象名,如果不在这里定义,是没有办法直接set为实例对象的
Private T_UserLog
Private Sub Class_Initialize
set T_User = new DAL_User '在BLL实例化为对象的同时,建立数据访问对象
set T_UserLog = new DAL_UserLog
End Sub
Private Sub Class_Terminate
set T_User = nothing '离开时清场
set T_UserLog = nothing
End Sub
' ***********************************
' CheckLogin 登录检查
' 参数为user的实体对象,通过MOD_User实例化出来的.
' ByRef 表示这个实体对象会从这里被写入数据,传回去继续被使用.
' ***********************************
Public Function CheckLogin (ByRef vMUser)
if T_User.CheckLogin(vMUser) then '调用数据访问层的登录检验方法.
CheckLogin = true
e.Add "Login success"
else
CheckLogin = false
e.Add "Login failed"
end if
' ****** 记录登录结果
T_UserLog.RecordLogin vMUser.UserAccount,e.Message '记录用户操作信息
End Function
end class
%>
总结:
开始设计BLL层的时候,是准备把所有的数据访问类,实体类全部include进来,然后用到哪个抓哪个,这是经典的asp程序的做法.
这样的话,一则include太多影响效率,二则对代码的分业务管理没有好处,三则改动一个数据类,不知道会影响到哪些业务类.
[ASP中使用三层架构] 11.用户登录之三 User业务逻辑类
最新推荐文章于 2020-11-19 23:06:00 发布