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





  • 相关阅读:
    手把手教你用Python模拟登录淘宝
    数据库链接方式ORM
    ubuntu命令
    django项目不能运行解决方法
    区别比较 match和search
    redis持久化RDB与AOF
    python基础数据类型
    python基础二
    Python中将一个对象倒序输出的4种方法
    python基础数据类型补充以及编码的进阶
  • 原文地址:https://www.cnblogs.com/jgig11/p/5786338.html
Copyright © 2011-2022 走看看