zoukankan      html  css  js  c++  java
  • 重构16-Encapsulate Conditional(封装条件)

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

    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;
    }
    }





  • 相关阅读:
    HDU 1224 无环有向最长路
    HDU 1220 简单数学题
    HDU 1203 背包问题
    HDU 1176 DP
    HDU 1159 LCS最长公共子序列
    HDU 1160 排序或者通过最短路两种方法解决
    hdu 2349 最小生成树
    次小生成树的学习
    最小生成树prime算法模板
    poj 1679 判断最小生成树是否唯一
  • 原文地址:https://www.cnblogs.com/jgig11/p/5786338.html
Copyright © 2011-2022 走看看