Code Fragment-对于if语句中的boolean值分开判断的处理。
来源:互联网 发布:杭州网络诈骗判决书 编辑:程序博客网 时间:2024/05/17 21:53
本文参考自《代码整洁之道》,这本书,非常好!
向方法中传入boolean值参数,用于判断逻辑并分开执行。缺点:
- 方法签名立即变得复杂起来。
- 此方法做的事情多余一件。
实例:
重构以后,变成2个方法/** * @param isChecked */ protected void setAllDayViewsVisibility(boolean isChecked) { if (isChecked) { if (mEndTime.hour == 0 && mEndTime.minute == 0) { mEndTime.monthDay--; long endMillis = mEndTime.normalize(true); // Do not allow an event to have an end time // before the // start time. if (mEndTime.before(mStartTime)) { mEndTime.set(mStartTime); endMillis = mEndTime.normalize(true); } setDate(mEndDateButton, endMillis); setTime(mEndTimeButton, endMillis); } mStartTimeButton.setVisibility(View.GONE); mEndTimeButton.setVisibility(View.GONE); mTimezoneRow.setVisibility(View.GONE); } else { if (mEndTime.hour == 0 && mEndTime.minute == 0) { mEndTime.monthDay++; long endMillis = mEndTime.normalize(true); setDate(mEndDateButton, endMillis); setTime(mEndTimeButton, endMillis); } mStartTimeButton.setVisibility(View.VISIBLE); mEndTimeButton.setVisibility(View.VISIBLE); mTimezoneRow.setVisibility(View.VISIBLE); } updateHomeTime(); }
protected void setAllDayViewsGone() {if (mEndTime.hour == 0 && mEndTime.minute == 0) {mEndTime.monthDay--;long endMillis = mEndTime.normalize(true);// Do not allow an event to have an end time// before the// start time.if (mEndTime.before(mStartTime)) {mEndTime.set(mStartTime);endMillis = mEndTime.normalize(true);}setDate(mEndDateButton, endMillis);setTime(mEndTimeButton, endMillis);}mStartTimeButton.setVisibility(View.GONE);mEndTimeButton.setVisibility(View.GONE);mTimezoneRow.setVisibility(View.GONE);updateHomeTime();}protected void setAllDayViewsVisible() {if (mEndTime.hour == 0 && mEndTime.minute == 0) {mEndTime.monthDay++;long endMillis = mEndTime.normalize(true);setDate(mEndDateButton, endMillis);setTime(mEndTimeButton, endMillis);}mStartTimeButton.setVisibility(View.VISIBLE);mEndTimeButton.setVisibility(View.VISIBLE);mTimezoneRow.setVisibility(View.VISIBLE);updateHomeTime();}
- Code Fragment-对于if语句中的boolean值分开判断的处理。
- 代码优化:判断语句,对于boolean值,要避免不必要的等式判断
- js中的对非boolean值param进行if(!param)的判断时的逻辑
- boolean在if判断中的运用
- if语句的判断
- 异常处理和IF else语句判断的区别?
- sql中的判断语句 if...else的使用
- java中if判断里关于两个Boolean值等号连接的理解
- PHP空判断empty(),is_set(),is_null(),if(boolean)的区别
- 对于二分法,每次的if判断
- python的if判断语句
- Code Fragment-查询与改动分开
- 【Shell】shell中的if语句判断参数
- mysql 语句中的简单if判断
- mysql 语句中的简单if判断
- Shell中的if和case判断语句
- mysql 中的判断语句(case、if)
- 当if()语句的()中的表达式是赋值语句时,判断真假
- spring mvc测试之配置
- iOS5编程 -- main函数研究
- D3D中D3DFVF_XYZ和D3DFVF_XYZRHW的区别
- typedef精讲
- iOS应用程序状态切换相关
- Code Fragment-对于if语句中的boolean值分开判断的处理。
- ArrayList的使用
- Hdu 2101 A + B Problem Too
- Android - 文件读写操作 总结
- 一种可以避免数据迁移的分库分表scale-out扩容方式
- 【字符串操作】06.将一个字符串的指定位数插入空格
- AC 两年 + 大学生活小记
- UIKit和Core Graphics绘图——构造路径,阴影以及渐变扩展
- 用批处理开启、关闭oracle服务