高内聚低耦合

软件构造基本思想:高内聚低耦合

内聚和耦合

内聚:故名思议,表示内部间聚集、关联的程度,那么高内聚就是指要高度的聚集和关联。高内聚是指类与类之间的关系而定,高,意思是他们之间的关系要简单,明了,不要有很强的关系,不然,运行起来就会出问题。一个类的运行影响到其他的类。由于高内聚具备可靠性,可重用性,可读性等优点,模块设计推荐采用高内聚。内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。

耦合:是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。 耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标。

什么是高内聚低耦合?

高内聚低耦合是软件构造中一个重要的概念,是评判软件设计好坏的标准。顾名思义,高内聚低耦合是指模块内部聚集程度高,模块与模块之间耦合程度低。意思就是每个成员方法只完成一件事,每个模块只完成一个功能。而模块之间要尽量减少相互调用和数据传递等关联。一般来说,高内聚低耦合使程序变得模块化,从而可以大大提高程序的可复用性和扩展性。

怎样做到高内聚低耦合?

增强内聚度的方法:

1.尽量减少模块接口的数量,这样可以降低模块间的依赖关系。

2.如果模块的对外接口不变,对于模块内部的任何修改,都不得影响其他模块。

3.删除一个模块,应当只影响有依赖关系的其他模块,而不应该影响其他无关部分。

降低耦合度的方法:

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

的。

2、模块的功能化分尽可能的单一,道理也很简单,功能单一的模块供其它模块调用的机会就少。(其实这是高内聚的一种说法,高内聚低耦合一般同时出现)。

3、遵循一个定义只在一个地方出现。

4、少使用全局变量。

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

6、最后当然就是避免直接操作或调用其它模块或类;如果模块间必须存在耦合,原则上尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。

我的感想

高内聚低耦合的确是软件构造过程中不可或缺的思想,这一点在规模特别小的程序中体会并不是很深刻,但对于规模较大的程序来说,高内聚低耦合的确可以给代码复用,功能扩展和程序修改等提供非常大的方便 ,

在做实验三时,由于实验三要求实现的三个场景有大量相似的地方,高内聚低耦合的影响尤为明显。通过高内聚低耦合将相同的功能集合在同一模块中,每次使用时直接调用相应模块即可。这就大大减少了程序的代码量,同时让程序的结构更加清晰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值