zoukankan      html  css  js  c++  java
  • 三、耦合

    1.耦合的定义

        模块之间互相依赖的程度。

    耦合和内聚的区别:耦合关注的是模块间的依赖程度;内聚关注的是模块内部元素的结合程度。

    2.耦合的分类

        无耦合:模块间完全没有关系和交互。无耦合的模块意味着所有的功能都是自给自足,什么都得自己做。如果是非常底层的模块,还可以接受,但是非底层模块如果完全无耦合,那么意味着它什么都得自己造轮子,既不利于重用,效率也很低下。

        消息耦合:系统之间交互的接口,两个类之间调用的方法都可以称之为消息。消息耦合是耦合程度比较低的一种耦合,因为调用方仅仅依赖被调用方的消息。既不要传递参数,也不要知道消息的内部逻辑,更不需要控制消息的内部逻辑。

        数据耦合:两个模块之间通过参数传递基本数据,为数据耦合。

        数据结构耦合:数据结构耦合类似于数据耦合,区别是数据耦合传递的是基本数据参数,数据结构耦合传递的是数据结构参数,比如:对象

        控制耦合:当一个模块可以通过某种方式来控制另一个模块行为时,称为控制耦合。最常见传入一个控制参数,来控制函数的处理流程或输出,例如:工厂类

        外部耦合:当两个模块都依赖于外部的数据格式、通信协议、接口时,则这两个模块为外部耦合。例如:操作系统和外设之间依赖于USB接口。操作系统接收按照USB接口协议输入的信号,鼠标按照USB接口协议来输出入信号,在鼠标插入USB接口之前,操作系统并不能感知将要接入到USB接口上的设备是什么设备。

        全局耦合:两个模块共享相同的全局数据时,则为全局耦合。例如:程序中的全局变量、单例对象等。

        内容耦合:当一个模块依赖于另一个模块内部的数据成员时,则称为内容耦合。内容耦合是最差的一种耦合方式。这种耦合破坏了模块的封装性。处于内容耦合的模块,就像一根稻草上的蚂蚱,没办法单独修改或优化。最常见的例子就是:某个类有个public的属性,其他类直接使用这个类的这个属性。

  • 相关阅读:
    [codevs]线段树练习5
    【Java学习笔记之十六】浅谈Java中的继承与多态
    【Java学习笔记之十五】Java中的static关键字解析
    【Java学习笔记之十四】Java中this用法小节
    【Java学习笔记之十三】初探Java面向对象的过程及代码实现
    【Java学习笔记之十二】Java8增强的工具类:Arrays的用法整理总结
    hdu2896 AC自动机
    hdu2222 AC自动机
    字符串匹配--AC自动机模板
    字符串匹配--(K)MP模板
  • 原文地址:https://www.cnblogs.com/mysic/p/8489778.html
Copyright © 2011-2022 走看看