【发布时间】:2010-10-03 07:19:10
【问题描述】:
35 行、55 行、100 行、300 行?你应该什么时候开始把它分开?我之所以问,是因为我有一个 60 行(包括 cmets)的函数,并且正在考虑将其拆分。
long_function(){ ... }
进入:
small_function_1(){...}
small_function_2(){...}
small_function_3(){...}
这些函数不会在 long_function 之外使用,制作更小的函数意味着更多的函数调用,等等。
你什么时候会把一个函数分解成更小的函数?为什么?
- 方法应该只做一件合乎逻辑的事情(考虑功能)
- 你应该能用一句话解释方法
- 它应该适合显示器的高度
- 避免不必要的开销(cmets 指出显而易见的......)
- 小逻辑函数的单元测试更容易
- 检查部分函数是否可以被其他类或方法重用
- 避免过度的类间耦合
- 避免深度嵌套的控制结构
感谢大家的回答,编辑列表并投票给正确的答案,我会选择那个;)
考虑到这些想法,我现在正在重构 :)
【问题讨论】:
-
您在代码行方面提出问题是错误的。决定因素不是用代码行来衡量的。
-
这个问题可能会变得复杂,具体取决于代码和语言。也许你可以发布它。
-
如果符合单一责任原则,那就去做吧。我通常觉得需要为每 20 行代码创建一个标题,这标志着我将其抽象出来并将这个片段命名为一个有意义的名称的函数,而不是创建一个章节标题。
标签: function refactoring coding-style