码迷,mamicode.com
首页 > 其他好文 > 详细

巧妙传值,为队友减负

时间:2015-01-01 00:17:50      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

不管是采用七层,或是沿用三层,层与层之间的工作划分都有很强的次序。既然划分好了层级,规定好了各层各自的任务,那就去尊重,照章实现就好了。各层不仅要履行好自身的职责,能在自身职责的基础上,再发放些福利,那不仅程序做得Beautiful,合作也会Beautiful!

       直面问题。举例说明一下:

       在“机房收费系统”的上机业务实现中,界面层(UI层)接收用户输入的上机所需的必要信息,封装成实体(Model),传给业务层(BLL层)。业务层在处理的过程中,需要做如下这些判断:①A=“基本数据是否设定”②B=“用户是否存在”③C=“卡是否可用”④D=“余额是否充足”⑤E=“是否已经在线” 。

       从上面的5个判断,看出,每一个都只需返回一个Boolean,而且每一个Boolean都是独立的“True”或者“False”。在不满足时,为了能将明确的信息回馈给用户,明确问题,以方便用户的调整,最快地为用户提供实现。一次只能调用一个,做一个判断,有一个返回值。这个判断在BLL层进行过一遍,等传给UI层又得对返回值进行再次判断,才能得出结果。如果就这么来,那么UI完成的工作跟BLL所做处理相差不大,还徒增过程的一次调用和判断。这在任何“懒”的程序猿面前,都是难以忍受滴。

       上面的这5条判断,都必须去判断一遍,全部满足后,“上机”才能走通。所以关于对它们的判断谁先谁后,在全部满足(多数)的情况下是没有差别的,所以先不考虑。

       在BLL层将这些判断进行查询和处理,并集中判断。此处如果用设计模式,可用装饰模式进行。

装饰模式:objec = judgeFunction(objec)

B =judgeFunction(A)

C =judgeFunction(B)

D =judgeFunction(C)

E =judgeFunction(D)

 

如果深加分析,可以考虑,将易发生“不满足”的判断放在前面,如果不满足,立即返回,不用进行后面的其他判断,当然会有提升性能。

 

 

 

只在形式上进行划分,在实质上,不仅没有带来便利,反而变得繁琐。那只会被嗤之以鼻,遭受唾弃。

巧妙传值,为队友减负

标签:

原文地址:http://blog.csdn.net/wangqingbo0829/article/details/42303905

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!