到底要不要拆分函数

简介: 问题描述: 怎样的函数才算是有意义的函数? 比如这样的函数有没有意义? (1)只被调用一次的函数 (2)只有一句实现内容的函数 (3)函数很多的参数 比如一个函数,有很多局部变量,如果要拆成多个函数,那么每个函数都要传递这些局部变量,会造成函数的参数很多。

问题描述:

怎样的函数才算是有意义的函数?
比如这样的函数有没有意义?
(1)只被调用一次的函数
(2)只有一句实现内容的函数
(3)函数很多的参数
比如一个函数,有很多局部变量,如果要拆成多个函数,那么每个函数都要传递这些局部变量,会造成函数的 参数很多
在拆分函数这个问题上,我们要考虑我们在开发过程中,是以写为主?还是以读为主?
Uncle Bob刚好在这方便做过一些统计,他发现,即使是在开发过程中,大部分时间也是在读代码的。
那么更何况后期维护,即使是修改代码,也是要以读懂代码为基础的。
很显然,我们的开发是以读为主的,因此,便于阅读的代码就是有意义的代码。适当地牺牲“写的方便性”来实现“读的方便性”是有必要的。
 

就事论事:

(1)只被调用一次的函数是否有意义?
答:如果它有助于阅读,就是有意义的,比如init();
(2)只有一句实现内容的函数是否有意义?
答:如果它有助于阅读,就是有意义的,比如将多个判断条件合并
(3)有很参数的函数是否有意义?
答:如果“读得方便”的代价是“写得很不方便”,这并不意味着它不应该被拆分。而是说明这个函数本身设计不合理。它不只要被拆分,更要被重构。
 
http://blog.csdn.net/mishifangxiangdefeng/article/details/43500803
目录
打赏
0
0
0
0
13
分享
相关文章
数组拆分(C++)
你的任务是将这些数分成。
128 0
leetcod-561:数组拆分 I
leetcod-561:数组拆分 I
67 0
|
4月前
数组拆分与合并
【10月更文挑战第29天】数组拆分与合并。
33 2
[译] 你是如何拆分组件的?
本文讲的是[译] 你是如何拆分组件的?,React 组件会随着时间的推移而逐步增长。幸好我意识到了这一点,不然我的一些应用程序的组件将变得非常可怕。
1738 0
记一次拆分包裹的算法
由于公司销售的商品从生产厂家拿过来的时候都是成箱装的,规格如下:大包装50个,中包装30个,小包装10个。而用户购买的时候,数量可能是70个、60个或5个这种数据 ,于是就有了拆包的需求。 首先我们要怎么拆才能尽量避免不拆箱呢?原则上来讲,优先计算大包装,最后小包装,也就是说,从大到小的去拆包。
1436 0
04. 字符串合并与拆分写法小结
原文:04. 字符串合并与拆分写法小结 一. 字符合并 if OBJECT_ID('ConcatStr') is not null drop table ConcatStr GO create table ConcatStr ( ID int, Code varchar(10) ...
821 0
系统拆分粒度
系统拆分粒度
197 0
拆分字符串函数
本函数可以将“目标字符串”以“指定字符串”进行拆分,并通过表结构返回结果。 在SQL Service中的代码如下: 1 CREATE FUNCTION [dbo].[fnSPLIT] 2 ( 3 @sInputString varchar(8000) 4 , ...
928 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等