首页 > 代码库 > 【机房重构】再小也要理解

【机房重构】再小也要理解

    在写机房学生注册功能的时候,遇到了一些小问题,正如“麻雀虽小,五脏俱全”一样,问题虽小不一定自己就完全理解它的逻辑流程,在这里总结一下,便于以后的使用和深入学习。

    首先来看看学生注册的流程:当输入卡号的时候,通过查找,判断卡号是否存在,存在,重新输入;反之继续输入信息。点击保存时,先判断学号是否存在,存在,提示重新输入学号;不存在,提示注册成功。

    当然这是我理解的,每个人的理解存在些许的不同。

    在设计的时候,在D层中就出现了,查找,插入,判断三个方法。在B层中首先要查找卡号是否存在,再在插入之前判断学号是否存在。这就说明在插入方法中用了判断方法。

    了解了流程,接下来看看这三个方法在B层中怎么写。第一种,我们可以定义插入、判断两个方法,在插入中直接使用判断。

    第二种,将判断方法定义为私有方法,在插入方法中调用这个私有方法。来看看第二种的代码:

    Public Sub InsertStudentInfoDAL(ByVal enStudentInfo As Entity.enStudentInfo) '执行插入语句   这里定义的参数enStudentInfo在整个方法中都适用
        Dim dInfo As DAL.RegisterDAL
        Dim isExist As Boolean  '定义一个boolean变量  ,用于判断是否成功注册

        isExist = QueryStudentNo(enStudentInfo.StudentNo) '此处调用了定义的私有方法 
        If isExist = True Then  '若值为true,则说明注册成功
            dInfo = New DAL.RegisterDAL()
            dInfo.InsertDAL(enStudentInfo)
            MsgBox("注册成功!")
        End If


    End Sub
    Private Function QueryStudentNo(ByVal StudentNo As String) As Boolean  '定义一个私有的方法,在别的方法中去调用它
        Dim dInfo As DAL.RegisterDAL
        Dim eInfo As New Entity.enStudentInfo

        dInfo = New DAL.RegisterDAL()
        eInfo = dInfo.QueryStudentNo(StudentNo)

        If Not eInfo Is Nothing Then  '判断学号是否重复
            MsgBox("学号重复,请重新填写!")
            Return False
        End If
        Return True
    End Function
      上述代码中,将私有方法QueryStudentNo的返回值定义为boolean型。当InsertStudentInfoDAL方法中需要调用它的时候,定义一个boolean型的变量IsExist来接受QueryStudentNo的返回值,接着通过判断IsExist是否为true,来确定是否需要返回。

    以上的两种方法,实际上没有什么大的变化,但是第二种将方法定义成为私有的。当有多个方法都需要使用到这个方法的时候,这种写法就体现出了它的好处。

    机房重构中,有的时候是不理解,有的时候理解了不知道怎么写。有的时候写出来了,但你却不理解。是不是当我们真的搞清了这些的时候,就是进步、、