【机房重构】方法调用---再小也要理解
2014-06-28 21:01
260 查看
在写机房学生注册功能的时候,遇到了一些小问题,正如“麻雀虽小,五脏俱全”一样,问题虽小不一定自己就完全理解它的逻辑流程,在这里总结一下,便于以后的使用和深入学习。
首先来看看学生注册的流程:当输入卡号的时候,通过查找,判断卡号是否存在,存在,重新输入;反之继续输入信息。点击保存时,先判断学号是否存在,存在,提示重新输入学号;不存在,提示注册成功。
当然这是我理解的,每个人的理解存在些许的不同。
在设计的时候,在D层中就出现了,查找,插入,判断三个方法。在B层中首先要查找卡号是否存在,再在插入之前判断学号是否存在。这就说明在插入方法中用了判断方法。
了解了流程,接下来看看这三个方法在B层中怎么写。第一种,我们可以定义插入、判断两个方法,在插入中直接使用判断。
第二种,将判断方法定义为私有方法,在插入方法中调用这个私有方法。来看看第二种的代码:
上述代码中,将私有方法QueryStudentNo的返回值定义为boolean型。当InsertStudentInfoDAL方法中需要调用它的时候,定义一个boolean型的变量IsExist来接受QueryStudentNo的返回值,接着通过判断IsExist是否为true,来确定是否需要返回。
以上的两种方法,实际上没有什么大的变化,但是第二种将方法定义成为私有的。当有多个方法都需要使用到这个方法的时候,这种写法就体现出了它的好处。
机房重构中,有的时候是不理解,有的时候理解了不知道怎么写。有的时候写出来了,但你却不理解。是不是当我们真的搞清了这些的时候,就是进步、、
今天回头来看那会写的文章。真的是很有感概呀。那会觉得一个三层功能理解很费劲,当完成机房收费系统才发现,其实那都不叫事儿。
自己做过了,就发现,其实没有什么难O(∩_∩)O~
2014-8-3
首先来看看学生注册的流程:当输入卡号的时候,通过查找,判断卡号是否存在,存在,重新输入;反之继续输入信息。点击保存时,先判断学号是否存在,存在,提示重新输入学号;不存在,提示注册成功。
当然这是我理解的,每个人的理解存在些许的不同。
在设计的时候,在D层中就出现了,查找,插入,判断三个方法。在B层中首先要查找卡号是否存在,再在插入之前判断学号是否存在。这就说明在插入方法中用了判断方法。
了解了流程,接下来看看这三个方法在B层中怎么写。第一种,我们可以定义插入、判断两个方法,在插入中直接使用判断。
第二种,将判断方法定义为私有方法,在插入方法中调用这个私有方法。来看看第二种的代码:
<pre name="code" class="vb"> Public Sub InsertBLL() '执行插入语句 这里定义的参数enStudentInfo在整个方法中都适用 Dim dInfo As DAL.RegisterDAL Dim enStudentInfo As New Entity.enStudentInfo Dim isExist As Boolean '定义一个boolean变量 ,用于判断是否成功注册 isExist = QueryStudentNo(enStudentInfo.StudentNo) '此处调用了下面定义的私有方法 If isExist = True Then '若值为true,则说明注册成功 dInfo = New DAL.RegisterDAL() dInfo.InsertBLL() MsgBox("注册成功!") End If End Sub Private Function QueryStudentNo(ByVal StudentNo As Entity.enStudentInfo) 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,来确定是否需要返回。
以上的两种方法,实际上没有什么大的变化,但是第二种将方法定义成为私有的。当有多个方法都需要使用到这个方法的时候,这种写法就体现出了它的好处。
机房重构中,有的时候是不理解,有的时候理解了不知道怎么写。有的时候写出来了,但你却不理解。是不是当我们真的搞清了这些的时候,就是进步、、
今天回头来看那会写的文章。真的是很有感概呀。那会觉得一个三层功能理解很费劲,当完成机房收费系统才发现,其实那都不叫事儿。
自己做过了,就发现,其实没有什么难O(∩_∩)O~
2014-8-3
相关文章推荐
- 【机房重构】方法调用---再小也要理解
- 重构--Extract Method方法[自己理解的]
- 理解 Delphi 的类(十) - 深入方法[9] - 调用时的括号
- Python私有方法不能外部调用怎么理解?
- [DELPHI-码农]理解 Delphi 的类(十) - 深入方法[15] - 调用其他单元的函数
- 重构机房收费系统之 模板方法模式
- 《实战AJAX》中重构的xmlhttpRequest调用的使用方法
- 机房收费系统个人重构版2——组合查询之模板方法
- 深入理解Javascript动态方法调用与参数修改的问题
- 在包资源管理器中,在你要修改的类上点右键-重构-重命名 在弹出的窗口中输入新的名称,确定后eclipse会自动把该类内部的构造方法改名,会把工程中调用到该类的那些类自动修改正确。
- 理解动态代理的神器:InvocationHandler中invoke()方法的调用问题
- 理解 Delphi 的类(十) - 深入方法[15] - 调用其他单元的函数
- 流 内容多 但是重在理解 看API函数调用其方法就好
- struts2 动态方法调用,动态方法调用的理解
- 深入理解Javascript动态方法调用与参数修改的问题
- 理解 Delphi 的类(十) - 深入方法[3] - 调用时参数分割
- 在Delphi中调用EXE文件,最简单、最容易理解的方法。
- 深入理解Java的方法调用二(多态性)
- 【重构笔记】重构手法之简化方法调用
- 机房重构(5)——模板方法实现组合查询