首页 > 编程知识 正文

java强耦合设计,高内聚低耦合好处

时间:2023-05-03 21:56:16 阅读:135804 作者:1592

在rm竞赛中,我发现文件和函数的代码规范逻辑非常重要。 这不仅影响了自己看代码是否方便,也影响了下期atgdqt对我代码的理解。 因此,我打算开始规范自己的代码习惯,养成良好的习惯,以后也能使用工作。

以下来自百度百科

凝聚和偶联

耦合:模块之间关联度的测量值。 绑定的强弱取决于模块间接口的复杂性、模块的调用方式以及通过接口传输数据的量。 模块之间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传输关系。 模块之间的联系越多,耦合性越强,同时表示独立性越差。 通过降低模块之间的耦合度,可以减少模块之间的影响,防止对某个模块的修改引起的“牵拉全身”水波效应,使系统设计顺利进行。 耦合度是一个模块(类)与其他模块(类)类的关联、感知、依赖程度,是衡量代码独立性的一个指标。

表示凝聚(故名)不可思议、内部聚集、关联的程度。 高聚集是指高度聚集和关联。 高凝聚是指班级和班级的关系。 高意味着让他们的关系简单、清晰,没有很强的关系。 不这样做的话,运行会产生问题。 一个类的执行会影响其他类。 由于高内聚性具有可靠性、可复用性、可读性等优点,建议模块化设计采用高内聚性。 聚集标志是一个模块内各要素相互结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。 凝聚是从功能的角度来衡量模块内的联系,好的凝聚模块正好需要做一件事。 表示模块内的功能联系。

凝聚

偶然凝聚:

一个模块内的各处理元件之间没有任何联系,只是碰巧聚在一起。 这类模块也称为偶然凝聚,凝聚程度最低。

逻辑凝聚:

这些模块结合了几个相关的功能,每次调用时传递给模块的参数决定了该模块应该发挥的功能。

时间凝聚:

由应同时执行的动作组合而成的模块称为时间凝聚模块。

过程聚集:

构件或操作组合允许在调用上一个构件或操作后立即调用下一个构件或操作,即使两者之间没有数据。 简而言之,模块内的处理要素相关联,必须以特定顺序执行的情况称为进程凝聚。 例如,完成一个登录的功能,以前的功能判断网络状态,以后的功能执行登录操作,显然是按照特定的顺序执行的。

通信凝聚:

指模块中的所有处理元素都在同一个数据结构上操作,或者所有处理功能都通过公共数据关联(有时称为信息聚集)。 这意味着模块中的每个组件都使用相同的数据结构或生成相同的数据结构。

顺序凝聚:

一个模块中的每个处理元件都与相同的功能密切相关,这些处理必须按顺序执行。 通常是上一个处理要素的输出时和之后的处理要素的输入时。 例如,为了完成获取某一订单信息的功能,前一功能执行获取用户信息,后一功能执行计算平均价格的操作,显然模块中的两个部分密切相关。 顺序凝聚的凝聚度比较高,但存在功能凝聚越容易维护的缺点。

功能凝聚:

模块内所有元件的各元件都是为了完成相同的功能而存在的,共同完成一个功能,模块再也不能分离。 也就是说,模块中只含有实现某种功能所需的所有成分,这些成分密切相关,是不可缺少的。

偶联反应

非直接结合:

两个模块之间没有直接的关系,它们之间的联系完全通过主控模块的控制和调用来实现。 结合度最弱,模块独立性最强。

数据合并:

在调用模块和被调用的模块之间只传递简单的数据项参数。 相当于用高级语言交货。

标注联接:

在调用模块和被调用模块之间传递数据结构(而不是简单的数据)也称为特性联接。 表和模块之间传递的不是简单的变量,而是高级语言中的数据名称、记录名称、文件名等数据结果,这些名称是标记,实际上是传递地址。

联轴器控制:

模块之间传递的不是数据信息,而是标志、开关量等控制信息,一个模块控制着另一个模块的功能。

外部联轴器:

一组模块访问同一个全局简单变量,不通过参数表传递该全局变量的信息称为外部联接。

公共耦合:

一组模块访问同一全局数据结构称为公共联接。 公共数据环境可以是全局数据结构、共享通信区域、存储器的公共复盖区域等。 如果模块只是向公共数据环境输入数据,或者只是从公共数据环境中检索数据,则这是一个相对松散的公共耦合。如果模块向公共数据环境输入数据并从公共数据环境中检索数据,则它属于更紧密的公共耦合。

公共耦合会引起以下问题。

1 .无法控制对各模块公共数据的访问,严重影响了软件模块的可靠性和适应性。

2 .恶化软件的可维护性。 如果一个模块更改公共数据,则会影响相关模块。

3 .降低了软件的可理解性。 很难知道哪个数据被哪个模块共享,很难进行排序。

一般来说,只有在模块之间共享的数据较多,不方便通过参数传递时,才会使用公共联接。

内容合并:

当一个模块直接访问另一个模块的内容时,这两个模块称为内容结合。

如果程序出现以下情况之一,则表明两个模块之间存在内容合并:

1 .一个模块直接访问另一个模块的内部数据。

2 .一个模块不通过普通入口直接调入另一个模块内部。

3 .两个模块中有些代码重叠(

有一定的独立功能)。

4. 一个模块有多个入口。

内容耦合可能在汇编语言中出现。大多数高级语言都已设计成不允许出现内容耦合。这种耦合的耦合性最强,模块独立性最弱。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。