????????在工作,我们应该都不想看到非常的长函数。对于一个运行5年左右的项目,极有可能出现这种情况。由于长函数的长、if/else嵌套,导致代码的可读性非常差,这对于项目的维护和开发带来了极大的困难。所以我们应该避免写长函数,并且有改造方法。
????????针对一个函数,多长才算是长函数呢?这个每个人都有不同的定义。我认为,不能仅仅从代码的多少去判断,应该从另一个角度(是否分类处理数据)来思考这个事情。如果是平铺直叙,一点点地加代码,这必会成为长函数。有人说超过20行就算是长函数,有人的标准更高。我认为一屏能够看下,基本都是可以接受的。
public void TestLongMethod(Map<String,String> map){
// 1.校验数据
checkData(map);
// 2.处理数据
handleData(map);
// 3.发送mq消息
sendMq(map);
}
????????在分类处理数据时,如果出现多种情况,每种情况都有这样一套分类处理的流程,此时可以考虑继承或者策略模式处理数据。
? ? ? ? 例如:一个活动,分为很多类型。每种类型的数据都是这样一套数据。
????????如下代码,一个方法内出现过多的if语句,应该根据具体业务,避免过多的if嵌套。
如下代码,一个方法过长,应该分类处理数据,可以参考步骤1。(生产代码,所以做了处理)
? ? ? ? 一个追求优秀的程序员对自己的代码风格应该有严格的自律,一定不会写出长函数。