重构之提炼方法

来源:互联网 发布:十大网络主播评选排名 编辑:程序博客网 时间:2024/05/17 01:51

         重构的方法很多,为何在这里单独说这个?突然有点灵感,想到了一个挺好的例子,或许能有不错的说服力,趁灵感还在,就写下来吧。

         提炼方法是重构中比较常用的一种重构,把大方法拆分成小方法。我曾试图让一些人提炼方法,但是得到的反馈主要有以下:

1,  还不是要写那么多,而且看一些代码还要跳去别的地方看,我直接往下看不是更好;

2,  我这代码就我这里用,提取出来也没有别的地方用到的;

3,  不符合面向对象,你的类本来没有那么多行为,你抽出了几个方法,不就让类多了几种不应该属于它的行为(最奇葩的反馈,没有之一);

4,  有什么用。

还有一些我就不列举了,下面我用一个刚想到的例子,不知道能不能很好的解释下,提炼方法的作用。

以前学语文的时候,应该有提炼文章信息的题目,下面我们对随便百度的一段日记进行内容提炼(我语文水平有限,提炼不好别见怪,希望大家取其神,忘其形)

例:

一个学期已过,我们那紧张的考试已经过去了,“Yes!Yes!”放假了。为了这一次期末考试,我们付出了许多心血,现在终于解放了!第二天,我跟姐姐约好一起出去放松放松。

今天我迫不及待的跳下床,拿好了所以所有的东西,便让妈妈送我到姐姐家去。今天就是我和姐姐的天堂,因为我们的爸爸妈妈都上班了,没有时间陪我们。这次,我们到万达玩,没有父母在,我们就可以随便的玩,随便的逛了。在到万达的路上,我跟姐姐有说有笑的。我笑着对姐姐说:“姐姐,我们今天中午吃什么好吃的?”姐姐一本正经的说:“随便你吃什么,我都请你吃。”我想:姐姐今天怎么了,怎么突然变得如此大方。我挎着姐姐的胳膊问:“真的吗?是真的吗?”姐姐这才露出了笑容对我说:“弟弟呀!我可没带钱哦!”我心想:没有带钱,我们干嘛来万达呀!吃惊地问:“那你背着包干嘛呀?”姐姐见我急了,马上从包里拿出一大把钱,对我说:“弟弟,你看看姐姐手上拿着什么?”我看了一眼:“钱,钱。”心想:姐姐也真是够幽默的。让我出了一身冷汗。

走着,聊着,不由自主地就到万达了。我和姐姐吃了牛排,因为吃牛排省事,就不要点其它菜了,又方便又不贵,这里除了牛排收钱,其它的饮料、水果、点心等,都不收钱。我和姐姐痛痛快快的吃了起来,吃完以后,我们又想到了一个主意,不如我们去看电影吧!说看就看,姐姐立刻买了两张电影票,还买了吃的喝的,我们开开心心的看电影。

对上面的信息进行下简单的提炼:

1,  放假了,明天和姐姐去放松(第一段具体内容,这里忽略);

2,  我和姐姐去万达去玩(第二段具体内容,这里忽略);

3,  在万达吃牛排看电影(第三段具体内容,这里忽略)。

提炼出来后,450字的内容,简单的几个字,其实就说明白的整个日记的内容,看括号前面的提炼就行了,如果想看具体详情,可以看括号内的详情即可。

这和提炼方法也一样,一段很长的代码,将其提炼成一些小方法,如果想看具体详情的,可以跳进该方法中查看,这样代码会清晰很多。我相信,对于上面的那段日志的提炼,很多人都会接受,但是对于代码的提炼方法,很多人却不接受,是因为懒吗?

方法如何提炼,我说下我常用的方法(do something 即为一个方法):

1,if(){

do something

}

2,foreach()/for()

do something

4,  对象初始化加赋值,

更多的我就不举例了,可以去看《重构:改善代码的设计》,要忙了,先这样。

1 0
原创粉丝点击