不要害怕 1 行函数!
很多程序员似乎对 1 行函数有一个心理障碍,你不应该。
如果它使代码更清晰、更干净,则将该行提取到一个函数中。
性能可能不会受到影响。
在过去十年(也许更远)中制造的任何体面的编译器都会自动内联一个简单的 1 行函数。此外,1 行 C 语言可以轻松对应多行机器代码。你不应该假设即使在理论上你会产生函数调用的全部开销,与你的“一小行”相比,这个开销是显着的。更不用说对应用程序的整体性能有重要意义了。
抽象带来更好的设计。(即使是单行代码)
函数是抽象、组件化代码的主要构建块,它们不应被忽视。如果在函数调用后面封装一行代码使代码更具可读性,那就去做吧。即使在函数被调用一次的情况下。如果您发现注释某一特定代码行很重要,那是一种很好的代码气味,将代码移动到命名良好的函数中可能会有所帮助。
当然,今天的代码可能只有 1 行代码,但是有多少种不同的方式来执行相同的功能呢?将代码封装在函数中可以让您更轻松地查看所有可用的设计选项。也许您的 1 行代码扩展为对 Web 服务的调用,也许它成为数据库查询,也许它变得可配置(例如,使用策略模式),也许您想切换到缓存由您的 1- 计算的值线。当您将 1 行代码提取到自己的函数中时,所有这些选项都更容易实现并且更容易想到。
也许您的 1 行应该是更多行。
如果您有一大块代码,可能很想将大量功能塞进一行代码中,以节省屏幕空间。当您将此代码迁移到函数时,您会减少这些压力,这可能会使您更倾向于将复杂的 1-liner 扩展为占用多行代码的更简单的代码(这可能会提高其可读性和可维护性)。