机房重构总结1

来源:互联网 发布:et服装软件图片 编辑:程序博客网 时间:2024/06/11 18:13

机房重构也进行一段时间了,有必要总结一下了。

机房重构的第一步就是七层登录,七层登录我用的是C#实现的。

不管做什么项目首先就是要理清思路,实现七层登录当然也是,首先我们要看图。



这里的七层是在三层的基础上与设计模式相结合演化而来的,应用了设计模式中的外观模式和抽象工厂模式。

1、IDAL:接口层用来定义一个统一的接口,解除B层和D层的耦合。

2、Factory:工厂来创建接口,返回接口,用到了抽象工厂+反射+配置文件,作用是灵活的实现数据库的连接,方便换数据库,进一步解耦合。

3、BLL:主要负责一些逻辑判断和处理。

4、Facade:这里用到了外观模式,使得复杂问题简单化,用外观模式定义系统中每一层的入口,层与层之间不直接产生联系,而通过外观类建立联系,降低层之间的耦合度。

5、UI:主要职责是为用户提供信息,以及把用户的指令进行翻译。

6、Entity:实体层,存放全局的实体类,方便各个层之前的参数调用。

7、DAL:数据访问层所做事务直接操作数据库,针对数据的增添、删除、修改、查找。无需做什么逻辑判断,只是和数据库直接交互。


展示一下部分代码:

Factory层:

Imports System.Reflection  Imports IDAL  Imports System.Data  Imports System.Configuration  Public Class LoginFactory         Dim strDB As String = System.Configuration.ConfigurationSettings.AppSettings("DBString")        Dim strQueryWorkLog As String = System.Configuration.ConfigurationSettings.AppSettings("DBStrQueryWorkLog")            Public Function CreateUser() As IDAL.IUser          Return CType(Assembly.Load("DAL").CreateInstance("DAL.LoginDAL"), IDAL.IUser)      End Function        Public Function SaveWorkLog() As IDAL.IWorklog          Return CType(Assembly.Load("DAL").CreateInstance("DAL.WorklogDAL"), IDAL.IWorklog)      End Function      End Class  

DAL层:

Imports System.Data.SqlClient  Imports IDAL    Public Class LoginDAL : Implements IDAL.IUser        Public Function IDALUser(User As Entity.UserEntity) As DataTable Implements IDAL.IUser.IDALUser          Dim SqlParams As SqlParameter() = {New SqlParameter("@UserID", User.UserID), New SqlParameter("@passWord", User.Password)}          Dim Sql As String = "select * from User_Info where userID=@userID and passWord=@passWord"          'Dim cmdText As String = "pro_selectUser"          Dim SqlHelperObject As New SqlHelper.LoginSqlHelper               Dim cmdType As CommandType = New CommandType()              Dim table As New DataTable          table = SqlHelperObject.Execute(Sql, cmdType, SqlParams)            Return table    End Function
Imports System.Data.SqlClient  Imports IDAL  Public Class WorklogDAL : Implements IDAL.IWorklog        Public Function SaveWorklog(worklog As Entity.WorklogEntity) As Boolean Implements IDAL.IWorklog.SaveWorklog          Dim Sql As String = "INSERT INTO Worklog_Info (UserID,loginDateTime,Computer) VALUES (@UserID,@loginDateTime,@Computer)"          Dim SqlParams As SqlParameter() = {New SqlParameter("@UserID", worklog.UserID),                                            New SqlParameter("@loginDateTime", worklog.loginDateTime),                                            New SqlParameter("@Computer", worklog.Computer)}          Dim cmdType As CommandType = CommandType.Text          Dim SqlHelperObject As New SqlHelper.LoginSqlHelper          Return SqlHelperObject.ExecuteQuery(Sql, cmdType, SqlParams)        End Function  End Class  



 



原创粉丝点击