搜索
写经验 领红包
 > 社会

耦合度以及降低耦合性的方法有哪些(耦合度以及降低耦合性的方法是什么)

导语:耦合度以及降低耦合性的方法

耦合度以及降低耦合性的方法有哪些(耦合度以及降低耦合性的方法是什么)

一、耦合度

Coupling,dependency,或称耦合力或耦合度。

内聚性是一个和耦合性相对的概念,一般而言低耦合性代表高内聚性,反之亦然。低耦合性是结构良好程序的特性,低耦合性程序的可读性及可维护性会比较好。耦合性可以是低耦合性(或称为松散耦合),也可以是高耦合性(或称为紧密耦合)。

内聚性:高内聚性一般和许多理想的软件特性有关,包括鲁棒性、可靠度、可复用性及易懂性(understandability)等特性,而低内聚性一般也代表不易维护、不易测试、不易复用以及难以理解。

鲁棒性:鲁棒是Robust的音译,也就是健壮和强壮的意思。它也是在异常和危险情况下系统生存的能力。

模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。

降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行

二、紧密耦合的系统在开发阶段有以下的缺点

一个模块的修改会产生涟漪效应,其他模块也需随之修改。

由于模块之间的相依性,模块的组合会需要更多的精力及时间。

由于一个模块有许多的相依模块,模块的可复用性低。

三、降低耦合性的方法

1、少使用类的继承,多用接口隐藏实现的细节。 java面向对象编程引入接口除了支持多态外, 隐藏实现细节也是其中一个目的。

2、模块的功能化分尽可能的单一,道理也很简单,功能单一的模块供其它模块调用的机会就少。

3、遵循一个定义只在一个地方出现。(对一个功能、类只定义在一个地方)。

修改时永远只修改这一个地方。增加功能时也只在一个地方修改。将变动只缩小到一个地方。一处修改,所有用它的地方都生效。

比如:

标准库函数 std::cout 输出函数, 它只定义在一个地方,任何地方都可以用它。 当那天说输出的内容不同了,想改变输出的内容,那么代码中比如有500、上千上万次用了这个函数,如果你去修改每个调用这个函数的地方,那么将会被累死,并且极可能(几乎是一定)出错。可现在你只用修改 std::cout 本身就可以了)

4、少使用全局变量。

( 1.由于全局变量,程序运行期间,始终占有那块存储区,所以空间利用率比较低,大量的全局变量,很快就会把内存用光,所以要少用全局变量;2.全局变量由于每个函数都可以使用,所以任何一个函数的修改,如果修改了全局变量,都有可能影响到其他函数,所以不利于调试)

5、类属性和方法的声明少用public,多用private关键字

(公共的就有可能被到处调用,到处new对象)

6、多用设计模式,比如采用MVC的设计模式就可以降低界面与业务逻辑的耦合度。

7、尽量不用“硬编码”的方式写程序,同时也尽量避免直接用SQL语句操作数据库。

(软编码实现)properties

本文内容由快快网络小快整理编辑!