博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重构16-Encapsulate Conditional(封装条件)
阅读量:5157 次
发布时间:2019-06-13

本文共 1144 字,大约阅读时间需要 3 分钟。

当代码中充斥着若干条件判断时,代码的真正意图会迷失于这些条件判断之中。这时我喜欢将条件判断提取到一个易于读取的属性或方法(如果有参数)中。重构之前的代码如下:

public class RemoteControl {
private String[] Functions;//getter setter private String Name;//getter setter private int CreatedYear;//getter setter public String PerformCoolFunction(String buttonPressed) {
// Determine if we are controlling some extra function // that requires special conditions if (Functions.length > 1 && Name == "RCA" && CreatedYear > new Date().getYear() - 2) {
return "doSomething"; } return null; } }
重构之后,代码的可读性更强,意图更明显:
public class RemoteControl {
private String[] Functions;//getter setter private String Name;//getter setter private int CreatedYear;//getter setter private Boolean HasExtraFunctions; public Boolean getHasExtraFunctions() {
return Functions.length > 1 && Name == "RCA" && CreatedYear > new Date().getYear() - 2; } public String PerformCoolFunction(String buttonPressed) {
// Determine if we are controlling some extra function // that requires special conditions if (HasExtraFunctions) {
return "doSomething"; } return null; } }

转载于:https://www.cnblogs.com/jgig11/p/5786338.html

你可能感兴趣的文章
UVA 10480 Sabotage
查看>>
2C. Fibonacci Again
查看>>
linux下面实时查看进程,内存以及cpu使用情况使用命令
查看>>
eclipse改变默认的编码格式(UTF-8)
查看>>
页面显示问题用layer插件
查看>>
OA办公自动化系统设计方案
查看>>
Java_MD5的使用
查看>>
Xshell批量导入IP地址
查看>>
边缘计算 VS 云计算,谁才是未来?
查看>>
Arduino抢答器
查看>>
在maven 2工程中加入iTextAsian支持(maven添加自定义jar包到本地仓库)
查看>>
yui压缩JS和CSS文件
查看>>
zabbix服务器搭建
查看>>
Python模块
查看>>
Hive - Create Table&Drop Table & ALTER Table(中)
查看>>
python处理txt文件的一种情况
查看>>
72. Edit Distance
查看>>
52)PHP,加了单例模式的数据库代码
查看>>
10)俄罗斯方块基本步骤
查看>>
云+技术沙龙:计算机视觉的原理及最佳实践
查看>>