摘要:
对象调用某个函数,并将所得结果做为参数,传递给另一个函数。而接受参数的函数本身也能够调用前一个函数。
让参数接受者去除该项参数,并直接调用前一个函数。 阅读全文
摘要:
你有一个函数,其中完全取决于参数值而采取不同行为。针对该参数的每个可能值,建立一个独立的函数。 阅读全文
摘要:
某个函数既返回对象状态值,又修改对象状态(副作用)。
建立两个不同的函数,其中一个负责查询,另一个负责修改。 阅读全文
摘要:
返回总目录 本小节目录 Rename Method(函数改名) Add Parameter(添加参数) Remove Parameter(移除参数) 1Rename Method(函数改名) 概要 函数的名称未能揭示函数的用途。 修改函数的名称。 动机 将复杂的处理过程分解成小函数是良好的编程风格。 阅读全文
摘要:
返回总目录 7 Introduce Null Object(引入Null对象) 概要 你需要再三检查某对象是否为null。 将null值替换为null对象。 动机 系统在使用对象的相关功能时,总要检查对象是否为null,如果不为null,我们才会调用它的相关方法,完成某种逻辑。这样的检查在一个系统中 阅读全文
摘要:
返回总目录 本小节目录 Replace Nested Conditional with Guard Claues(以卫语句取代嵌套条件表达式) Replace Conditional with Polymorphism(以多态取代条件表达式) 5Replace Nested Conditional 阅读全文
摘要:
返回总目录 本小节目录 Consolidate Duplicate Conditional Fragments(合并重复的条件片段) Remove Control Flag(移除控制标记) 3Consolidate Duplicate Conditional Fragments(合并重复的条件片段) 阅读全文
摘要:
返回总目录 本小节目录 Decompose Conditional(分解条件表达式) Consolidate Conditional Expression(合并条件表达式) 1Decompose Conditional(分解条件表达式) 概要 你有一个复杂的条件(if-else if-else)语句 阅读全文
摘要:
返回总目录 本小节目录 Introduce Foreign Method(引入外加函数) Introduce Local Extension(引入本地扩展) Introduce Foreign Method(引入外加函数) Introduce Local Extension(引入本地扩展) 7Int 阅读全文
摘要:
返回总目录 本小节目录 Hide Delegate(隐藏“委托关系”) Remove Middle Man(移除中间人) Hide Delegate(隐藏“委托关系”) Remove Middle Man(移除中间人) 5Hide Delegate(隐藏“委托关系”) 概要 客户通过一个委托关系来调 阅读全文