将重复代码分解为单独函数的名称

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将重复代码分解为单独函数的名称相关的知识,希望对你有一定的参考价值。

我正在尝试寻找关于特定代码重构模式的研究/建议,但我发现很难找到,因为我不确定它是否有一个好名字。它与分解重复代码非常相似,除了代码首先没有重复:它只是隐藏在较大函数的条件分支中,可以通过该函数的参数访问。

在伪代码中,之前:

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)

编辑:添加示例调用。不清楚删除的参数是重构的一部分。

答案

用于将重复代码分解为单独方法的模式称为“extract method refactoring”。

另一答案

我相信这是OO modularity的基本案例。你要分离出两个不一定要在一起的离散过程。

以上是关于将重复代码分解为单独函数的名称的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将2个非常相似的代码片段组合成一个函数并重复?

将多个输出中的hls属性设置为单独的片段代码

NUXT.js 和 Axios 运行时如何避免代码重复?

第六章.解决大问题

php,函数

13 个非常有用的 Python 代码片段