在机房重构的刚开始过程中,我对于每一个功能都建立了一个外观层,所以刚开始我感觉外观怎么没有起到应起的作用呢,只是简单地降低了U层和B层之间的耦合,用于传递参数,把UI层的参数传递给外观,然后再有外观层把参数传递给B层,后来跟小胖交流,才发现还是没有理解外观模式的用处,所以才导致了下面的问题,于是重新开始翻开书重新理解外观到底是干什么用的。
这是刚开始学习设计模式时总结的一篇博客:外观模式。当初只是知道外观层减少了客户端和系统的交互过多的问题,然后让一个外观作为一个统一的接口。
但是这个接口是干嘛用的?这个接口里有什么内容呢?现在才明白,在一个外观类里,可以去组合多个子系统类,决定了由哪几个子系统类来执行。通过一个外观类,就可以实现客户端对多个子系统的访问。
机房外观:
‘学生上机
Public Function CheckInquireOnline(ByVal cardInfo As JFEntity.CardInfo) As Boolean
Dim checkExitCard As New JFBLL.checkExitCardBLL ‘判断卡号是否存在
Dim checkOnMoney As New JFBLL.checkOnMoneyBLL ‘判断余额
Dim checkOn As New JFBLL.checkOn ‘判断是否在上机
'定义继任者
checkExitCard.setsuccessor(checkOnMoney)
checkOnMoney.setsuccessor(checkOn)
Return checkExitCard.handlecheck(request)
End Function
End Class
在学生上机的外观里,定义了三个B层的类,这样就减少了UI层和B层之间交互过多的问题。
学习就是一个循序渐近,盲人摸象的过程,刚开始理解的不是很深刻,但是在后面的学习过程中又会有自己不一样的认识和理解。