【问题标题】:Programming style: write new functions or extend existing ones编程风格:编写新函数或扩展现有函数
【发布时间】:2020-07-02 08:13:04
【问题描述】:

可以说,我有一个带有 Image 字段和函数 ```getImageWidth()``` 的表单,用于检查图像宽度。一段时间后,我在表单中添加了一个新的移动图像字段,我想知道,编写一个检查移动图像宽度的函数的最佳实践是什么 - 扩展旧的一个函数 ``getImageWidth()```(通过添加参数 isMobileImage) 或编写一个新的 ```getMobileImageWidth()``` 函数?这个新函数的代码几乎与旧函数相似。

你有什么看法? 谢谢,

【问题讨论】:

    标签: coding-style refactoring


    【解决方案1】:

    我认为,getMobileImageWidth() 会是更好的选择。例如,Martin Fowler 的博客中有主题 Remove Flag Argument。在他的书Refactoring: Improving the Design of Existing Code 中,他写下了以下声明:

    我不喜欢标志参数,因为它们使理解什么的过程复杂化 函数调用可用以及如何调用它们。我进入 API 的第一条路线通常是 可用函数列表和标志参数隐藏函数中的差异 可用的呼叫。一旦我选择了一个函数,我必须弄清楚什么是值 可用于标志参数。布尔标志更糟糕,因为它们不传达 它们对读者的意义——在函数调用中,我无法弄清楚 true 的含义。它的 更清晰地为我想做的任务提供明确的功能。

    我认为这正是您所需要的。

    【讨论】:

      猜你喜欢
      • 2016-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-11
      • 1970-01-01
      • 1970-01-01
      • 2021-05-13
      • 2017-10-31
      相关资源
      最近更新 更多