跳至主要內容

简化函数调用

引领潮流大约 2 分钟重构-改善代码设计archive

原则:接口简洁易用,只做一件事 1)函数改名 要点:函数的名称未能揭示函数的用途 2)添加参数 要点:某个函数需要从调用端得到更多信息 3)移除参数 要点:函数本体不再需要某个参数 4)将查询函数和修改函数分离 要点:某个函数既返回对象状态值,又修改对象状态 方案:建立两个不同函数,其中一个负责查询,另一个负责修改 规则:任何有返回值的函数,都不应该有看得到的副作用 5)令函数携带参数 要点:若干函数做了类似的工作,但在函数本体中却包含了不同的值 方案:建立单一函数,以参数表达那些不同的值(父类) 6)以明确函数取代参数 要点:针对该参数的每一个可能值,建立一个独立函数 方案:一个参数,一个函数,清晰明确 7)保持对象完整 要点:你从某个对象中取出若干值,将它们作为某一次函数调用的参数 方案:改为传递整个对象 8)以函数取代参数 要点:两行代码合并一行,语义更清晰 方案:让参数接受者取出该项参数,并直接调用前一个函数 9)引入参数对象 要点:某些参数总是很自然地同时出现 方案:以一个对象取代这些参数 10)移除设值函数 要点:类中某个字段应该在对象创建时被设值,然后就不在改变。 11)隐藏函数 要点:有一个函数,从来没有被其他任何类用到 12)以工厂函数取代构造函数 要点:不止是构建,还要创建对象 13)以异常取代错误码 要点:某个函数返回一个特定的代码,用来表示某种错误 14)以测试取代异常 要点:修改调用者,使它在调用函数之前先做检查