精华内容
下载资源
问答
  • 第六周作业 -内聚耦合
    千次阅读
    2020-12-24 21:46:20

    1.首先说明什么是耦合度

    耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味这弱内聚,强内聚常意味着弱耦合。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。

    耦合的强度依赖于以下几个因素:

    (1)一个模块对另一个模块的调用;

    (2)一个模块向另一个模块传递的数据量;

    (3)一个模块施加到另一个模块的控制的多少;

    (4)模块之间接口的复杂程度。

    2.耦合按从强到弱的顺序可分为以下几种类型:

    (1)非直接耦合:两模块间没有直接关系,之间的联系完全是通过主模块的控制和调用来实现的

    (2)数据耦合:一个模块访问另一模块,彼此间通过简单数据参数来交换输入、输出信息。

    (3)标记耦合:如一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,不是简单变量。

    (4)控制耦合:一个模块通过传递开关、标志、名字等控制信息,明显的控制选择另一模块的功能

    (5)外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数传递该全局变量的信息

    (6)公共耦合:一组模块都访问同一个公共数,该公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

    (7)内容耦合:一个模块直接修改另一个模块的数据,或直接转入另一个模块

    内聚度是指内部各元素之间联系的紧密程度,模块的内聚种类通常可分为7种,按其内聚度从低

    到高的次序依此为:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

    3.为什么要高内聚、低耦合

    了解什么是耦合及耦合的分类后,我们知道耦合度很高的情况下,维护代码时修改一个地方会牵连到很多地方,如果修改时没有理清这些耦合关系,那么带来的后果可能会是灾难性的,特别是对于需求变化较多以及多人协作开发维护的项目,修改一个地方会引起本来已经运行稳定的模块错误,严重时会导致恶性循环,问题永远改不完,开发和测试都在各种问题之间奔波劳累,最后导致项目延期,用户满意度降低,成本也增加了,这对用户和开发商影响都是很恶劣的,各种风险也就不言而喻了。

    为了预防这些问题的发生,其中一个重要手段就是降低代码的耦合度。但也不可能有绝对的零耦合,比如基于J2EE编程那就必须和JDK

    耦合,而且高耦合也不是一无是处,如果在设计前期预料到某功能后期基本不用修改,那么即使高耦合了也关系不大。但是,在还没有能力

    设计出基本不用修改的代码前,还得要求以低耦合为标准。

    4.降低耦合度的方法

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

    ②模块的功能化分尽可能的单一,道理也很简单,功能单一的模块供其它模块调用的机会就少3、遵循一个定义只在一个地方出现。

    ③少使用全局变量。

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

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

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

    ⑦最后当然就是避免直接操作或调用其它模块或类(内容耦合);如果模块间必须存在耦合,原则上尽量使用数据耦合,少用控制耦合,

    更多相关内容
  • 图解7种耦合关系

    千次阅读 2020-12-24 21:46:16
    之前组内同学问我耦合的关系,我没给对方讲清楚,今天借这个机会来深入讲讲模块之间的耦合关系这个事情。本文将用图文详细讲解七种耦合的不同之处。高内聚与低耦合高内聚与低耦合是每个软件开发者追求的目标,那么内...

    之前组内同学问我耦合的关系,我没给对方讲清楚,今天借这个机会来深入讲讲模块之间的耦合关系这个事情。

    本文将用图文详细讲解七种耦合的不同之处。

    高内聚与低耦合

    高内聚与低耦合是每个软件开发者追求的目标,那么内聚和耦合分别是什么意思呢?

    内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。

    耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

    耦合

    不同模块之间的关系就是耦合,根据耦合程度可以分为7种,耦合度依次变低。内容耦合

    公共耦合

    外部耦合

    控制耦合

    标记耦合

    数据耦合

    非直接耦合

    下面我们来说说每种耦合是什么,开始之前先来说下要实现的功能。m1和m2是两个独立的模块,其中m2种会显示m1的输入,m1会显示m2的输入。

    很显然,m1和m2两个模块之间会有一些联系(耦合),你也可以想想如何实现这个功能,下面用7种不同的方式来实现这个功能。

    注:项目的代码我放到了github,项目的demo,可以在这里查看。

    内容耦合

    内容耦合是最紧的耦合程度,一个模块直接访问另一模块的内容,则称这两个模块为内容耦合。

    为了实现功能,我们将m1的输入放到m2.m1input上,将m2的输入放到m1.m2

    展开全文
  • 耦合度一、什么是耦合度软件设计中通常用耦合度和... 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越,同时表明其独立性越差。降低模块间的耦合度能减...

    耦合度

    一、什么是耦合度

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

    内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味这弱内聚,强内聚常意味着弱耦合。

    耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计

    及编码质量评价的一个标准。耦合的强度依赖于以下几个因素:

    (1)一个模块对另一个模块的调用;

    (2)一个模块向另一个模块传递的数据量;

    (3)一个模块施加到另一个模块的控制的多少;

    (4)模块之间接口的复杂程度。

    耦合按从强到弱的顺序可分为以下几种类型:

    a)非直接耦合:两模块间没有直接关系,之间的联系完全是通过主模块的控制和调用来实现的

    b)数据耦合:一个模块访问另一模块,彼此间通过简单数据参数来交换输入、输出信息。这里的简单数据参数不同于控制参数、公共数据结构或外部变量。

    c)标记耦合:如一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,不是简单变量。

    d)控制耦合:一个模块通过传递开关、标志、名字等控制信息,明显的控制选择另一模块的功能

    e)外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数传递该全局变量的信息

    f)公共耦合:一组模块都访问同一个公共数

    据环境。该公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

    g)内容耦合:一个模块直接修改另一个模块的数据,或直接转入另一个模块

    内聚度是指内部各元素之间联系的紧密程度,模块的内聚种类通常可分为7种,按其内聚度从低

    到高的次序依此为:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

    二、为什么要低耦合

    了解什么是耦合及耦合的分类后,我想大家对为什么要降低耦合度已经有一定的认识,并且多数开发人员也大概尝尽了高耦合带来的苦

    头。道理很简单,耦合度很高的情况下,维护代码时修改一个地方会牵连到很多地方,如果修改时没有理清这些耦合关系,那么带来的后果

    可能会是灾难性的,特别是对于需求变化较多以及多人协作开发维护的项目,修改一个地方会引起本来已经运行稳定的模块错误,严重时会

    导致恶性循环,问题永远改不完,开发和测试都在各种问题之间奔波劳累,最后导致项目延期,用户满意度降低,成本也增加了,这对用户

    和开发商影响都是很恶劣的,各种风险也就不言而喻了。

    为了预防这些问题的发生,其中一个重要手段就是降低代码的耦合度。但也不可能有绝对的零耦合,比如基于J2EE编程那就必须和JDK

    耦合,而且高耦合也不是一无是处,如果在设计前期预料到某功能后期基本不用修改,那么即使高耦合了也关系不大。但是,在还没有能力

    设计出基本不用修改的代码前,还得要求以低耦合为标准。那么怎样才能最大限度地降低耦合度呢?下面介绍降低耦合度的几种方法。

    三、降低耦合度的方法

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

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

    耦合一般同时出现,为了限制篇幅,我们将在以后的版期中讨论)。

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

    4、少使用全局变量。

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

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

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

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

    限制公共耦合的范围,避免使用内容耦合。

    内聚: 故名思议,表示内部间聚集、关联的长度,那么高内聚就是指要高度的聚集和关联。高内聚:类与类之间的关系而定,高,意思是他们之间的关系要简单,明了,不要有很强的关系,不然,运行起来就会出问题。一个类的运行影响到其他的类。由于高内聚具备鲁棒性,可靠性,可重用性,可读性等优点,模块设计推荐采用高内聚。

    这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计,主要是看类的内聚性是否高,偶合度是否低

    “高内聚,低耦合”,首先要知道一个软件是由多个子程序组装而成,

    而一个程序由多个模块(方法)构成!

    “高内聚,低耦合”主要是阐述的面向对象系统中,各个类需要职责分离的思想。

    每一个类完成特定的独立的功能,这个就是高内聚。耦合就是类之间的互相调用关系,如果耦合很强,互相牵扯调用很多,那么会牵一发而动全身,不利于维护和扩展。

    类之间的设置应该要低耦合,但是每个类应该要高内聚.耦合是类之间相互依赖的尺度.如果每个对象都有引用其它所有的对象,那么就有高耦合,这是不合乎要求的,因为在两个对象之间,潜在性地流动了太多信息.低耦合是合乎要求的:它意味着对象彼此之间更独立的工作.低耦合最小化了修改一个类而导致也要修改其它类的"连锁反应". 内聚是一个类中变量与方法连接强度的尺度.高内聚是值得要的,因为它意味着类可以更好地执行一项工作.低内聚是不好的,因为它表明类中的元素之间很少相关.成分之间相互有关联的模块是合乎要求的.每个方法也应该高内聚.大多数的方法只执行一个功能.不要在方法中添加"额外"的指令,这样会导致方法执行更多的函数.

    推广开来说,这个思想并不限于类与类之间的关系。模块和模块,子系统之间也都要遵守这个原则,才可以设计出延展性比较强的系统。

    展开全文
  • 耦合下面不可以用宏命令来完成的操作是()。...程度从强对思维操作系统进行转变需要()。度到弱作品《Face to Face》表达的是那两个国家的问题。“问渠哪得清如许,量各为有源头活水来”??出自哪位诗人?What i...

    耦合下面不可以用宏命令来完成的操作是()。

    软件创意时常出现在我们的生活中。

    不同生活中不是每一个人都可以有创意。

    804147.jpg

    模块苹果笔记本的优点

    贾伟希望找到一种温和的设计思维,间种耦用()与()去创作。

    互连合按对事物产生一种新的看法需要()。

    程度从强对思维操作系统进行转变需要()。

    度到弱作品《Face to Face》表达的是那两个国家的问题。

    “问渠哪得清如许,量各为有源头活水来”??出自哪位诗人?

    What is the most famous sports in the US?

    回到最本真的状态,排列用灵巧的心去细腻感知,与生活更深刻地连接,就有了更( )的视角。

    What is the motto is WADA?

    耦合Where did The Olympic Games originate?

    软件How long since the Olympic Games originated?

    不同How many nations participated in the first Modern Olympic Games?

    模块Which of the following statements about spirit of sports is not true?

    间种耦What kind of sports facilities do UK local governments proved according to the lesson?

    Which of the following sports are not invented in Britain?

    Where did cricket first root?

    展开全文
  • 金蝶面试题 -

    2020-12-24 21:46:21
    所需空间与线性表长度成正比2、链式栈与顺序栈相比,一个比较明显的优点是() A.插入操作更加方便B.通常不会出现栈满的情况 C.不会出现栈空的情况 D.删除操作更加方便3、具有一个结点的完全二叉树的高度为1,那么具有...
  • 耦合 高内聚

    千次阅读 2021-01-14 13:24:28
    模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一...
  • 耦合(尽量小的影响),高内聚模块,可小到一个类,大到一个系统模块间耦合因素构建架构时,需要谨慎耦合的因素模块间调用模块间传递的数据量模块间控制模块间接口复杂度模块间耦合从弱到强顺序构建架构或简单的类时...
  • 在低温至高温的宽温区范围、真空等航天恶劣环境下,永磁电机电磁参数变化很大,材料发生非线性变化,电磁场、温度场、流体场、应力场等各个物理场之间耦合关系更加复杂,在正常环境下可以忽略的多物理场耦合关系变得...
  • 7种内聚与7种耦合的类型及强弱关系

    千次阅读 2021-04-20 09:26:36
    模块的内聚类型通常可以分为7种 ,根据内聚度高排序。 类型 说明 偶然(巧合)内聚 指一个模块内的各处理元素之间没有任何联系。 例如:三条不相关的语句( move O to R , read file F , move S toT...
  • 软件模块之间耦合度的强弱排序

    千次阅读 2021-02-26 14:05:35
    耦合度越低,两个模块之间相互影响越小,独立性越,越容易维护和扩展。以下由耦合度由高向低做一说明,在软件设计中尽量降低模块之间的耦合度。 内容耦合:一个模块直接操作另外一个模块的数据,称为内容耦合。如...
  • 关于开发中耦合度的强弱顺序

    千次阅读 2013-09-20 20:21:35
    耦合从强到弱顺序可分为以下几种类型: a)非直接耦合:两模块间没有直接关系,之间的联系完全是通过主模块的控制和调用来实现的 b)数据耦合:一个模块访问另一模块,彼此间通过简单数据参数来交换输入、输出...
  • 内聚和耦合关系

    千次阅读 2018-05-09 11:38:53
    耦合可以分为以下几种,它们之间的耦合度由高低排列如下: (1) 内容耦合:一个模块直接访问另一模块的内容,则称这两个模块为内容耦合。 若在程序中出现下列情况之一,则说明两个模块之间发生了内容耦合: ...
  • 如何降低耦合

    2021-02-26 16:46:32
    一、什么是耦合耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码...耦合从强到弱顺序可分为以下几种类型:(1)内容耦合。当一个模块直...
  • 他们的耦合度依次增强。 1. 依赖(Dependence)   依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义...
  • 软件工程中的耦合类型

    千次阅读 2017-03-24 21:17:16
    模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个...
  • 在下列内聚性序列中,复合从强到弱排列的是( )。A.偶然、瞬时、功能、通信、逻辑、顺序、过程B.功能、顺序、通信、过程、瞬时、逻辑、偶然C.功能、逻辑、通信、过程、顺序、瞬时、偶然D.过程、功能、通信、逻辑、...
  • 耦合性 内聚加实例

    千次阅读 2021-05-23 08:31:43
    模块之间联系越紧密,其耦合性就越,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。形象的说,就是要将代码写的和电脑一样,主类就是电脑的主机箱,当程序需要实现...
  • 一、什么是耦合耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码...耦合从强到弱顺序可分为以下几种类型:(1)内容耦合。当一个模块直...
  • 内聚 弱耦合

    2011-12-27 16:17:00
    内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着内聚,而内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求内聚,弱耦合。一、内聚强度内聚按强度高有以下几种类型:(1)...
  • UML类图关系

    2020-09-09 20:09:42
    在UML类图中,常见的有以下几种关系:泛化...关系耦合越低,内聚越。 1.泛化(Generalization) 【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种. 【..
  • 一、耦合 简单地说,对象之间的耦合度就是对象之间的依赖性。...耦合可以分为以下几种,它们之间的耦合度由高低排列如下: 内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合 一个模块直接访问另
  • 耦合

    2019-10-08 18:14:36
    耦合从强到弱顺序排列: 内容耦合>公共耦合>外部耦合>控制耦合>标记耦合>数据耦合>非直接耦合 耦合分类 1. 内容耦合: 如果发生下列情形,两个模块之间就发生了内容耦合 一个模块直接访问另...
  • 高内聚低耦合的理解

    2021-03-15 15:21:48
    在做rm比赛的过程中,发现文件和函数的代码规范逻辑十分重要,这不仅影响自己看代码的方便与否,还影响下届队员对我的代码的理解。... 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递...
  • 高内聚低耦合思想

    千次阅读 2017-12-01 11:54:06
    什么是高内聚低耦合 高内聚低耦合是为了实现比较高的模块独立性 ...模块之间联系越紧密,其耦合性就越,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
  • Java编程思想之高内聚低耦合

    千次阅读 2020-05-18 22:56:16
    文章目录1 前言2 低耦合耦合性定义耦合性分类3 高内聚高内聚定义耦合性分类4 示例5 总结 1 前言 编程的时候,经常要使得系统高内聚、低耦合,那么,我们口中的这些概念到底是什么?什么是高内聚低耦合呢? 2 低耦合 ...
  • 耦合度一、什么是耦合度软件设计中通常用耦合度和... 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越,同时表明其独立性越差。降低模块间的耦合度能减...
  • 前言:emmm最近都在赶进度,已经好久没输出了,接下来都使用MakeDown文档写文,推荐大家使用VsCode编译工具,加入Markdown Preview Enhanced插件,创建一个MD文件,复制过去点击下图显示...其耦合性就越==>模块...
  • 它们之间的关系为(由弱到强)(1)非直接耦合(Nondirect coupling)如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。 。(2)数据耦...
  • 模块之间联系越紧密,其耦合性就越,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。形象的说,就是要将代码写的和电脑一样,主类就是电脑的主机箱,当程序需要实现...
  • 内聚,弱耦合

    2008-12-13 09:45:00
    内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着内聚,而内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求内聚,弱耦合。一、内聚强度内聚按强度高有以下几种类型:(1)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,758
精华内容 6,303
关键字:

耦合关系从强到弱顺序