代码整洁案列

最近在看《代码整洁之道》这本书,受益颇多,发现了自己存在的好多问题,刚好这几天在做一道习题,结合书上所讲内容,对代码进行了几次修改,所以就把几次修改的内容放到这里做个参考,继续努力!
题目:编写一个有两个线程的程序,第一个线程用来计算2-100000的素数的个数,第二个线程用来计算100000-200000的素数的个数,最后输出结果。
首先,是源代码。定义了三个类: 1. 次要类Thread1用来计算2-100000素数的个数;2. 次要类Thread2用来计算100000-200000素数的个数;3. 主类PrimeNumber用来执行程序。前后共用48行,关于求素数这块代码可以明显的看到大量重复。代码如下:

代码整洁案列
文章图片
_第1张图片" style="border:1px solid black; "> image.png 代码整洁案列
文章图片
_第2张图片" style="border:1px solid black; "> image.png 代码整洁案列
文章图片
_第3张图片" style="border:1px solid black; "> image.png
因为重复,做了第一次修改。将求素数的代码抽离出来放到Method类里面,然后让Thread1和Thread2类继承Method类。前后共用51行,观察后发现,和线程没有任何关系,完全是创建子类Thread1和Thread2对象的时候,调用父类构造函数,得出的结果,因此不符合题意。代码如下:
代码整洁案列
文章图片
_第4张图片" style="border:1px solid black; "> image.png 代码整洁案列
文章图片
_第5张图片" style="border:1px solid black; "> image.png 代码整洁案列
文章图片
_第6张图片" style="border:1px solid black; "> image.png
【代码整洁案列】由于上述问题,做了第二次修改(为了节约时间,所以将参数改为2,100,200较小的数字)。定义了两个类:1. 次要类ThreadTestA 2. 主类PrimeNumber。将求素数的代码放进了result()里,在run()中对线程加以控制并调用result()。前后共用46行。代码如下:
代码整洁案列
文章图片
_第7张图片" style="border:1px solid black; "> image.png 代码整洁案列
文章图片
_第8张图片" style="border:1px solid black; "> image.png
以上就是几次修改的情况,如果按部就班的话,会很耗费时间,尽管如此,不得不说的是,当我最后一次修改完成,还是感到很刺激、很有成就感。若是我们把整洁代码养成一种习惯,平时就多加注意,这不仅不会耽误我们过多的时间,反而是一种巨大的助力。

    推荐阅读