.net机房收费系统实例—三层+设计模式

   最近在做.net机房收费系统,和简单的三层来一个对比,现在贴出来和大家分享!


包图:

   

    应用了设计模式(抽象工厂),这样使得B层和D层之间无需再有关系(应用接口)当B或D层变动时互不影响,也使得更换数据库方便,应用了抽象工厂+反射+配置文件,使得工厂和D层的关系线消失,这样B层和工厂只需知道D层的接口,和D层解耦。


类图在这里就省略了!


时序图:

          

下面则是实现的代码,当然只是简单的用上图的架构实现了登录的功能,时序图中的一些逻辑处理还没有应用.


U层:

Public Class Form
    Private Sub butExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butExit.Click
        End
    End Sub


    Private Sub butLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butLogin.Click
        '定义一个实体类对象,将文本框中的内容赋给实体类对象
        Dim user As Model.Teacher = New Model.Teacher
        user.user_ID = txtUserID.Text.ToString()
        user.user_PWD = txtUserPWD.Text.ToString()
        '定义一个业务逻辑层对象,根据业务逻辑层返回的结果,通知用户信息
        Dim fd As Facade.UserF = New Facade.UserF
        If fd.Query(user) Then
            MsgBox(True)
        Else
            MsgBox(False)
        End If
    End Sub
End Class


Facede层:

Public Class UserF

    Dim uB As BLL.UserBLL = New BLL.UserBLL


    Function Query(ByVal user As Model.Teacher) As Boolean
        If uB.QueryUser(user) Then
            Return (True)
        Else
            Return (False)
        End If

    End Function

End Class


B层

Public Class UserBLL
   
    Dim factory As Factory.UserFactory = New Factory.UserFactory
    Dim IUserDAL As IDAL.IUserIDAL

    Public Function QueryUser(ByVal user As Model.Teacher) As Boolean

        IUserDAL = factory.CreateUserDAL()

        If IUserDAL.Query_user(user) Then

            Return (True)
        Else
            Return (False)
        End If
    End Function
End Class


Factory层

Imports System.Reflection
Imports System.Configuration

Public Class UserFactory
    

    Public Function CreateUserDAL() As IDAL.IUserIDAL
        Dim AssemblyName = "DAL"
        'Dim create = "User"
        Dim create As String = ConfigurationManager.AppSettings("create")
        Dim className As String
        'Dim user As DAL.UserDAL = New DAL.UserDAL
        'Return user
        className = AssemblyName + "." + create + "DAL"

        Return CType(Assembly.Load(AssemblyName).CreateInstance(className), IDAL.IUserIDAL)
    End Function

End Class


IDAL层

Imports Model

Public Interface IUserIDAL

    Function Query_user(ByVal user As Teacher) As Boolean

End Interface

          学习的过程就是不断反复,不断对比,我们也是在不断的跌跌撞撞中成长,正是这样的成长,让我们逐步的去认识新的事物,了解它,以致掌握它!




评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值