使用临时变量来避免输入是不好的做法吗?

Dan*_*ski 12 language-agnostic coding-style

我有时会使用临时变量来缩短标识符:

private function doSomething() {
    $db = $this->currentDatabase;
    $db->callMethod1();
    $db->callMethod2();
    $db->callMethod3();
    $db->...
}
Run Code Online (Sandbox Code Playgroud)

虽然这是一个PHP示例,但我一般都会问:

这是不好的做法吗?有什么缺点吗?

mau*_*ris 15

这个例子非常好,因为你在函数/方法中使用它.

在方法/函数结束后,变量将立即取消设置 - 因此没有太多的内存泄漏或什么.

通过这样做,你"实施"干燥 - 不要重复自己.

为什么写的$this->currentDatabase时候写这么多$db.如果你必须改变$this->currentDatabase其他一些价值观怎么办?

  • @thephpdeveloper,这不是DRY的意思.DRY不是在多个地方定义实体,比如在配置文件和源代码中定义一个常量(而不是从配置文件中读取它).不重复自己的原因是为了避免因必须进行双重维护而产生的错误(例如更改配置文件中的值,但忘记(或不知道)更改源代码). (6认同)

Gyo*_*yom 6

实际上,你并没有试图避免输入(否则,你会在编辑器中使用完成机制),但你只是让你的功能更具可读性(通过使用"缩写"),这是一件好事.

当你开始这样做以避免打字(并牺牲可读性)时会出现缺点