耦合关系

时间:2023-11-20 20:57:47编辑:奇闻君

问题一:什么是耦合关系?

耦合是指两个或两个以上的电路元件或电网络的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现象;概括的说耦合就是指两个或两个以上的实体相互依赖于对方的一个量度。分为以下几种:
非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
标记耦合 :一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;
控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合
(1) 一个模块直接访问另一个模块的内部数据;
(2) 一个模块不通过正常入口转到另一模块内部;
(3) 两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
(4) 一个模块有多个入口。
耦合强度,依赖于以下几个因素:
(1)一个模块对另一个模块的调用;
(2)一个模块向另一个模块传递的数据量;
(3)一个模块施加到另一个模块的控制的多少;
(4)模块之间接口的复杂程度。
耦合按从强到弱的顺序可分为以下几种类型:
(1)内容耦合。当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。此时,被修改的模块完全依赖于修改它的模块。这是最高程度的耦合,也是最差的耦合。
(2)公共耦合。两个以上的模块共同引用一个全局数据项就称为公共耦合。
(3)控制耦合。一个模块在界面上传递一个信号(如开关值、标志量等)控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合。
(4)标记耦合。模块间通过参数传递复杂的内部数据结构,称为标记耦合。此数据结构的变化将使相关的模块发生变化。
(5)数据耦合。模块间通过参数传递基本类型的数据,称为数据耦合。
(6)非直接耦合。模块间没有信息传递时,属于非直接耦合。
如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,坚决避免使用内容耦合。
-----------------------------------------------------------------------------------------------------------------
软件工程中的耦合:
简单地说,对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。
就是依赖性,相关性吧!!!
有软硬件之间的耦合,还有软件各模块之间的耦合。
耦合性是程序结构中各个模块之间相互关联的度量.它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口.一般模块之间可能的连接方式有七种,耦合性由低到高分别是:非直接耦合、数据耦合、标记耦合、控制耦合、......余下全文>>

问题二:什么是耦合 如何解释

耦合
定义1:两个本来分开的电路之间或一个电路的两个本来相互分开的部分之间的交链。可使能量从一个电路传送到另一个电路,或由电路的一个部分传送到另一部分。
应用学科:电力(一级学科);通论(二级学科)
定义2:两个电路或器件的接合或连锁。分“静电耦合”、“磁耦合”、“直接耦合”、“电阻性耦合”、“光耦合”等。
应用学科:通信科技(一级学科);通信原理与基本技术(二级学科)
耦合是指两个或两个以上的电路元件或电网络的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现象;概括的说耦合就是指两个或两个以上的实体相互依赖于对方的一个量度。

问题三:概念问题:到底什么是耦合?

耦合就是两个层之间有依赖关系?
==
同一个层也可能有依赖关系
看见有解耦的 ... 就是在相互依赖的两层之间加一层,可是新加的一层不是又和原来的两层有耦合关系了吗?
==
解耦的方式是让设计依赖于抽象,而不是依赖于实现,看看设计模式的原则
到底什么是耦合??
==
A明确地使用B资源
publci class A
{
B b;
}
public class B
{
}
现在A依赖于B
interface IX
{
...
}
public class A
{
IX i;
public A(IX i)
{
this.i=i;
}
}
public class B:IX
{
}
调用的时候,我可以决定用哪个实现接口的类,甚至可以是从配置文件反射生成
A a=new A(new B());
也可能因为某个条件
A a=new A(new C());
这样 A依赖的是抽象的接口IX,而不是具体的类B或者C

问题四:什么叫耦合性?

耦合性是程序结构中各个模块之间相互关联的度量。它取决于各个模块之间接口的复杂程度、调用模块的方式以及哪些信息通过接口。
参考资料:baike.baidu/view/1731634

问题五:概念问题:到底什么是耦合

耦合就是两个层之间有依赖关系?
==
同一个层也可能有依赖关系
看见有解耦的 ... 就是在相互依赖的两层之间加一层,可是新加的一层不是又和原来的两层有耦合关系了吗?
==
解耦的方式是让设计依赖于抽象,而不是依赖于实现,看看设计模式的原则
到底什么是耦合??
==A明确地使用B资源
publci class A
{
B b;
}
public class B
{
}
现在A依赖于B
interface IX
{
...
}
public class A
{
IX i;
public A(IX i)
{
this.i=i;
}
}
public class B:IX
{
}
调用的时候,我可以决定用哪个实现接口的类,甚至可以是从配置文件反射生成
A a=new A(new B());
也可能因为某个条件
A a=new A(new C());
这样 A依赖的是抽象的接口IX,而不是具体的类B或者C

问题六:什么叫做耦合度???

软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。   耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。   模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。   降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。   内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味这弱内聚,强内聚常意味着弱耦合。 等级划分  耦合度可分为七级。   a)非直接耦合:   两模块间没有直接关系,之间的联系完全是通过主模块的控制和调用来实现的   b)数据耦合:   一个模块访问另一模块,彼此间通过简单数据参数来交换输入、输出信息。这里的简单数据参数不同于控制参数、公共数据结构或外部变量。   c)标记耦合:   如一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,不是简单变量。   d)控制耦合:   一个模块通过传递开关、标志、名字等控制信息,明显的控制选择另一模块的功能   e)外部耦合:   一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数传递该全局变量的信息   f)公共耦合:   一组模块都访问同一个公共数据环境。该公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。   g)内容耦合:   一个模块直接修改另一个模块的数据,或直接转入另一个模块   内聚度是指内部各元素之间联系的紧密程度,模块的内聚种类通常可分为7种,按其内聚度从低到高的次序依此为:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

问题七:电路里的“耦合关系”是什么关系?

先解释一下什么叫“耦合”
耦合就是2者或2个以上的事物相互影响,相互作用;以至于2个事物在一起的特性和 2个事物单独的特性不同。
电路里的耦合通常是通过“场”来实现
电场、磁场是耦合的介质。
例如
2个电感线圈在一起,除了有自身的自感
还有互感。
电感之间的耦合量就是 互感。
利用这个原理人们制造出自耦变压器

问题八:多态能够消除类型之间的耦合关系?这句话怎么理解 30分

给你说了也白搭,你大概知道就行了,这个需要代码量。。。简单地说就是,没有多态,那么等号左边是啥右边就得是啥,这就叫耦合,有了多态,左边是父类(或者接口),右边是子类(或实现类),我只管调用接口里面的 ... 就是了,至于你实现类怎么去实现,那是你的事,你要修改一下实现,你只管去把实现类换掉,我这边一行代码都不用变,这就解耦了

问题九:什么是耦合矩阵

对于4阶滤波器,耦合矩阵M为
0 M12
M21亥 M22
定义Kij 为第i个谐振器和第j个谐振器间的耦合系数,则耦合矩阵和耦合系数的关系是:
K12=M12
K23=M22
K34=M21

问题十:如何理解“耦合”这个词如题 谢谢了

Interface bi; Class b implements bi; 1. Class a 中,Class bi=new b(); a和 bi是编译时耦合。 a和 b 之间是编译时耦合。 2. Class a 中,Class bi=Class.forName(b).newInstance(); a和 b 是运行时耦合,但是只是推迟了耦合的时机,和 1 没有本质区别。 3. Class a 中,Class bi=Class.forName(bname).newInstance(); bname从外部配置文件中或者参数中获取。 a和 b 是潜在运行时耦合,你可以用类c替换b而不会影响a。 IoC的效果和 3 一样。 对于耦合关系的设计并不是越低越好,也不是越高越好,而是必须将设计中的耦合关系和业务模型中的耦合关系保持一致。 当业务模型中a必须依赖b的时候,最好的设计是1,这个时候代码最清楚、简洁,也最直接的表达出它们之间的耦合关系,如果用3反而使得a无法理解。 当业务模型中a是依赖于bi的某一种实现的时候,最好的设计是3。 注意,在设计过程中,解耦不是目的,让bi的实现可以不影响a而变化(前提是bi的实现确实存在潜在的变化可能)是目的。

上一篇:石中剑和湖中剑

下一篇:尼罗河在哪里