如何降低类之间的耦合

简介: 如何降低类之间的耦合

最近在写人员信息管理的程序,用Java实现,第一次CC完,我就写了一个类和一个test类Tmis.java,只是实现了功能,却没有用OO的思想,代码重用几乎不可能,第二次CC完,类分为了Tmis.java,Employee.java,BasicInfo.java,DetailInfo.java,但是耦合性很强,如何降低耦合性,是我接下去几天的任务。大家有秘籍的可要交流一下啊。下面是网上的一篇文章,觉得不错。

————————————————

如何看到一篇文章,讲java中将要尽量使用接口,应尽量避免使用继承,这对敏捷开发尤其重要。这篇文章的主要观点就是接口能够很大程度上的降低耦合。降低耦合对于敏捷开发非常重要。敏捷开发的过程不像传统的软件工作流程,先你设计,再编码;而是需求一出来就开始编码(不知道这么理解对不对),没有详细的design,需求变了就修改代码,改进代码。如果耦合太强的话,越往后修改的代价就越高,直到不可能修改,整个项目失败。

最近刚好又在看自己以前的代码,修bug,感觉自己以前的代码写得挺乱的,充其量也就是懂语法。其中不乏各种不必要的继承。最要命的问题是,很多类共同完成一个功能,耦合非常高,单个类的测试非常困难。以后每实现一段代码时,一定要想好怎么样好测试。

再者,其实写代码和做其他的产品都差不多。每个模块就是一个零件。当这个零件和其他的零件之间的关系非常小的时候,它才可能更通用,成为标准零件,才能被重复使用,例如机械中的螺丝。这倒让我想起了大学里学过的“造船成组技术”,我突然感觉到软件工程和造船也差不多。造船,批量生产的不多,大都是按照不同的需求来量身订做,软件也大都如此;尽管每艘船都是量身订做,但其中除了通用的零件外,大部分零件都需要订做,但是这些订做的零件中,很多部件在同一艘船上也可能多次用到,软件中也是这样,除了基本的类库,大部分模块也是要重新实现,但很多模块也会被重复使用到。

说得有点远了。总之,要降低耦合,让你每一小块代码都功能明确,都能测。

目录
相关文章
|
6月前
软件复用问题之复用决策中,业务架构和技术之间有何关系
软件复用问题之复用决策中,业务架构和技术之间有何关系
|
6月前
软件复用问题之复用性风险是如何定义的
软件复用问题之复用性风险是如何定义的
|
6月前
软件复用问题之在复用组件降低成本和复用组件引入依赖之间取得平衡,如何解决
软件复用问题之在复用组件降低成本和复用组件引入依赖之间取得平衡,如何解决
|
8月前
|
设计模式 编译器 数据安全/隐私保护
C++ 多级继承与多重继承:代码组织与灵活性的平衡
C++的多级和多重继承允许类从多个基类继承,促进代码重用和组织。优点包括代码效率和灵活性,但复杂性、菱形继承问题(导致命名冲突和歧义)以及对基类修改的脆弱性是潜在缺点。建议使用接口继承或组合来避免菱形继承。访问控制规则遵循公有、私有和受保护继承的原则。在使用这些继承形式时,需谨慎权衡优缺点。
178 1
|
8月前
|
存储 编译器 C语言
C与C++之间相互调用的基本方法
C与C++之间相互调用的基本方法
144 1
零耦合?抽象耦合?具体耦合?
零耦合?抽象耦合?具体耦合?
111 0
【系统架构】模块的耦合类型
【系统架构】模块的耦合类型
264 0
|
存储
对象之间的耦合性
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qingfeng812/article/details/8962836   数据耦合 数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递. 一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
1265 0
|
设计模式 关系型数据库
组件构建原则(五):稳定抽象原则
组件构建原则(五):稳定抽象原则
607 0