最近在写人员信息管理的程序,用Java实现,第一次CC完,我就写了一个类和一个test类Tmis.java,只是实现了功能,却没有用OO的思想,代码重用几乎不可能,第二次CC完,类分为了Tmis.java,Employee.java,BasicInfo.java,DetailInfo.java,但是耦合性很强,如何降低耦合性,是我接下去几天的任务。大家有秘籍的可要交流一下啊。下面是网上的一篇文章,觉得不错。
————————————————
如何看到一篇文章,讲java中将要尽量使用接口,应尽量避免使用继承,这对敏捷开发尤其重要。这篇文章的主要观点就是接口能够很大程度上的降低耦合。降低耦合对于敏捷开发非常重要。敏捷开发的过程不像传统的软件工作流程,先你设计,再编码;而是需求一出来就开始编码(不知道这么理解对不对),没有详细的design,需求变了就修改代码,改进代码。如果耦合太强的话,越往后修改的代价就越高,直到不可能修改,整个项目失败。
最近刚好又在看自己以前的代码,修bug,感觉自己以前的代码写得挺乱的,充其量也就是懂语法。其中不乏各种不必要的继承。最要命的问题是,很多类共同完成一个功能,耦合非常高,单个类的测试非常困难。以后每实现一段代码时,一定要想好怎么样好测试。
再者,其实写代码和做其他的产品都差不多。每个模块就是一个零件。当这个零件和其他的零件之间的关系非常小的时候,它才可能更通用,成为标准零件,才能被重复使用,例如机械中的螺丝。这倒让我想起了大学里学过的“造船成组技术”,我突然感觉到软件工程和造船也差不多。造船,批量生产的不多,大都是按照不同的需求来量身订做,软件也大都如此;尽管每艘船都是量身订做,但其中除了通用的零件外,大部分零件都需要订做,但是这些订做的零件中,很多部件在同一艘船上也可能多次用到,软件中也是这样,除了基本的类库,大部分模块也是要重新实现,但很多模块也会被重复使用到。
说得有点远了。总之,要降低耦合,让你每一小块代码都功能明确,都能测。