0 0

那位大侠指导一下这种代码应该如何改善?10


都说大量使用if else不好,使代码有坏味道,像下面这种代码应该如何改善呢?就是如何去除那些if else?
小弟拜谢~!

public Integer getShouldFilledWorkload(Date startDate, Date endDate) {
		
		Long count = 0l;                              //起始时间和结束时间之间的天数
		Integer shouldFilledWorkDay = 0;              //除去周六和周日剩下的天数
		
		Calendar cal = Calendar.getInstance();
		
		cal.setTime(startDate);
		count = (endDate.getTime() - startDate.getTime())/1000/60/60/24 + 1;
		
		for(int i=0;i<count;i++) {="" if(cal.get(calendar.day_of_week)!="Calendar.SATURDAY&amp;&amp;cal.get(Calendar.DAY_OF_WEEK)!=Calendar.SUNDAY){" shouldfilledworkday+="1;" }="" cal.add(calendar.day_of_week,="" 1);="" }="" return="" shouldfilledworkday*8;="" }="" public="" integer="" getdaycount(list<domainactorvo=""> l, Date startDate, Date endDate) {
		Integer workDayCount = 0;
		if(startDate==null||endDate==null||l==null) {
			return 0;
		}
		for(DomainActorVO daVO:l) {
			if(daVO.getJoinTime()==null) {
				continue;
			}
			if(daVO.getLeaveTime()==null) {
				if(endDate.compareTo(daVO.getJoinTime())<0) {
					workDayCount += getShouldFilledWorkload(startDate,endDate);
					continue;
				}
				if(startDate.compareTo(daVO.getJoinTime())<0) {
					workDayCount += (getShouldFilledWorkload(startDate,daVO.getJoinTime())-8);
				}
			}else {
				if(startDate.compareTo(daVO.getLeaveTime())>0) {
					workDayCount += getShouldFilledWorkload(startDate,endDate);
					continue;
				}
				if(endDate.compareTo(daVO.getJoinTime())<0) {
					workDayCount += getShouldFilledWorkload(startDate,endDate);
					continue;
				}
				if(startDate.compareTo(daVO.getJoinTime())<0) {
					workDayCount += (getShouldFilledWorkload(startDate,daVO.getJoinTime())-8);
				}
				if(endDate.compareTo(daVO.getLeaveTime())>0) {
					workDayCount += (getShouldFilledWorkload(daVO.getLeaveTime(),endDate)-8);
				}
			}
		}
		return workDayCount;
	}
2008年8月27日 16:49

2个答案 按时间排序 按投票排序

0 0

对于null的判断可以改用null object模式。但是你也要明白使用了null object模式以后是不是带来的好处会大于坏处,坏处是增加来一定量的代码复杂度。
对于判断来说我觉得你走进了一个极端,这种if else 是你的逻辑处理,除非你的逻辑处理需要变更你才有可能回去修改你的代码。但是你的代码中直接使用0这个魔鬼数字,我觉得可以定义一个常量来表示0,给这个常量一个有含义的名字会比你追求不使用if else来的实际。

2008年9月09日 13:48
0 0

switch(){
case:
}

如果用if else不好,你要知道为什么不好,才知道怎么改,不是别人说怎么改就怎么改,适时候而定

2008年8月30日 12:02

相关推荐

    (分卷2)NCTAudioStudio(多媒体dll),那位大侠可以破

    很好地音频控件,功能很强大。我只有1.03版地注册号码,不知道谁有这个1.7版的注册号?那位大侠可以说一下,或者那位高人可以破解一些。小弟急!万分感谢!

    (分卷1)NCTAudioStudio(多媒体dll),那位大侠可以破

    很好地音频控件,功能很强大。我只有1.03版地注册号码,不知道谁有这个1.7版的注册号?那位大侠可以说一下,或者那位高人可以破解一些。小弟急!万分感谢!funnysl@sina.com

    电脑软件鼠标连点器鼠大侠1.20 单文件版勿升级.rar

    5. **安全性**:作为一款知名软件,鼠大侠1.20应当遵循安全标准,不会携带恶意代码,保护用户的电脑安全。 6. **勿升级提示**:这可能是开发者认为1.20版已经足够满足大部分用户需求,或者新版本可能引入不兼容或...

    1-足球大侠-少儿编程scratch项目源代码文件案例素材.zip

    源代码文件"1-足球大侠.sb2"是这个项目的实际代码载体,它包含了所有程序逻辑、角色设计和交互规则。打开这个sb2文件,我们可以看到Scratch的工作界面,包括舞台区、角色区、脚本区以及指令块等部分。在脚本区,孩子...

    晴窗大侠 绿色版

    晴窗大侠 很好很强大本人已经测试过了 很好用 并且是破解版的

    晴窗中文大侠6.09破解版

    晴窗中文大侠6.09破解版  《晴窗中文大侠》的翻译技术是使用界面动态翻译技术,即完全是在目标软件工作运行时,动态完成翻译工作。不会影响目标软件原有的运行速度。因为在工作时,只是对目标软件在有文字输出时才...

    晴窗中文大侠 V6.0.9.109 (集成开发版)加强版

    《晴窗中文大侠6.0下载》晴窗中文大侠破解版绿色版版 晴窗中文大侠是晴窗科技在多年的软件界面语言本地化工作的基础上,面向个人用户开发的一套专业级汉化软件。 软件功能介绍使用帮助说明: 晴窗中文大侠可以...

    晴窗中文大侠 ChineseHome V6.0.13.137 (集成开发版)加强版

    晴窗中文大侠是晴窗科技 在多年的软件界面语言本地化工作的基础上,面向个人用户开发的一套专业级汉化软件。 晴窗中文大侠采用的是专业词库对照翻译模式,即一套目标软件就有一个和目标软件相对应的专业字典包.保证...

    DXBBS大侠论坛 v8.1 ACCESS

    DXBBS大侠论坛 v8.1 ACCESS的“便于维护”标签表明,该系统在设计时可能考虑了管理者的使用体验,可能包括易于理解和修改的数据库结构、清晰的代码逻辑以及良好的错误处理机制。这使得非专业程序员的管理员也能较为...

    晴窗中文大侠4.2注册机

    晴窗中文大侠4.2注册机,提供注册码 晴窗中文大侠4.2注册机,提供注册码 晴窗中文大侠4.2注册机,提供注册码

    晴窗中文大侠5.0钻石版

    "晴窗中文大侠5.0钻石版"是一款专门针对Windows XP Service Pack 2 (SP2) 操作系统的中文输入法软件。此版本被称为“钻石版”,通常意味着它包含了所有功能,性能优化以及可能的额外特性,以提供最优秀的用户体验。...

    晴窗大侠翻译软件—很好的翻译软件

    "晴窗大侠翻译软件"是一款受到用户好评的翻译工具,尤其适合那些需要进行软件文本翻译的用户。这款软件的设计理念是提供高效、准确的翻译服务,帮助用户跨越语言障碍,提升工作效率。在IT行业中,翻译软件的重要性...

    BBS大侠论坛ACCESS_C#论坛社区程序.rar

    【标题】"BBS大侠论坛ACCESS_C#论坛社区程序.rar" 涉及到的知识点主要集中在两个方面:一是数据库管理系统Access,二是编程语言C#,以及它们在构建论坛社区程序中的应用。 首先,Access是一款由Microsoft开发的关系...

    鼠大侠鼠标连点器v1.2.6免费绿色版

    鼠大侠鼠标连点器是一个专业的鼠标连点器,让你游戏挤房间,网上抢购提供最强大的鼠标支持,再不用手残点击你的鼠标,它操作方便,解放你的双手。 【功能特点】 1、点击类型可选 支持鼠标左键和右键点击,满足...

    鼠大侠---鼠标连点器

    鼠大侠 鼠标连点器

    晴窗中文大侠6.rar

    "晴窗中文大侠6.rar" 是一个压缩文件,很可能包含了一个名为 "ChineseHome V6.0.9.109 (集成开发版)加强版" 的软件或应用的安装程序。从标签 "晴窗中文大侠" 我们可以推测,这可能是一款专为中文用户设计的软件,...

    鼠大侠鼠标连点器

    鼠大侠鼠标连点器,上是一款好鼠标连续点击的软件。解放右手,值得拥有。

    熊猫大侠电脑主题 win7版.zip

    《熊猫大侠电脑主题win7版》是一款专为Windows 7操作系统设计的桌面主题,它以大熊猫为主题,融入了武侠元素,将这些可爱的大熊猫描绘成英勇无畏、威风凛凛的“熊猫大侠”。这个主题不仅仅是一套壁纸,更是一种个性...

    晴窗中文大侠 4.2 及注册机

    这个是一个汉化软件,相信大家都应该知道。这个我自己用过 绝对可以用!!!!如果不可以可以上QQ 找我 我的QQ:591484150 注1:这个软件要在打开英文软件再打开晴窗中文大侠,这样才能开始 汉化。 注2:如果不能...

    晴窗中文大侠5.0钻石版xp3补丁

    "晴窗中文大侠5.0钻石版xp3补丁"是针对晴窗中文大侠软件的一个重要更新,主要用于修复和优化在Windows XP Service Pack 3(SP3)环境下的功能和性能。这个补丁表明它经过了测试,并且在发布者本机上能够正常运行,为...

Global site tag (gtag.js) - Google Analytics