【发布时间】:2011-05-02 01:35:40
【问题描述】:
我正在尝试查找有关特定代码重构模式的研究/建议,但我发现它很难找到,因为我不确定它是否有一个好名字。这与分解重复代码非常相似,只是代码一开始没有重复:它只是隐藏在一个更大函数的条件分支中,可以通过该函数的参数访问。
在伪代码中,之前:
function frobnicate(id, check_only = false) {
if id cannot be frobnicated
return false
if check_only
return true
// frobnicate id
return true
}
// example calls:
okay_to_frobnicate = frobnicate(id, true)
frobnicate_success = frobnicate(id)
之后:
function can_be_frobnicated(id) {
if id cannot be frobnicated
return false
else
return true
}
function frobnicate(id) {
if not can_be_frobnicated(id)
return false
// frobnicate id
return true
}
// example calls:
okay_to_frobnicate = can_be_frobnicated(id)
frobnicate_success = frobnicate(id)
编辑:添加示例调用。不清楚删除的参数是重构的一部分。
【问题讨论】:
标签: design-patterns language-agnostic refactoring