发布网友 发布时间:2022-04-19 09:45
共2个回答
热心网友 时间:2023-06-22 06:12
耦合是一个含义不明确的术语,常被人撇到一边不管,很少有人去想它的含义及其对软件系统的影响。几乎差不多所有可伸缩性的场合,耦合都会起作用。而且,正如在Mastering EJB 2.0(可从www.theserverside.com下载)一书的“Clustering”一章中详细论述的,可伸缩性是一个在计算机科学中没有什么基础的术语。耦合应该被提升到与详细审查(scrutiny)一样的地位。
耦合可用的方式有很多种:紧耦合、松耦合、去耦等等。这些术语真正的意思是什么呢?在谈到我们开发的软件时,我们会正确地使用它们吗?
面向消息的中间件(message-oriented middleware,MOM)的制造商是耦合这一术语最广泛的使用者(也许是滥用者?)。多年来,他们一直在吹嘘合并MOM体系结构最大的好处就是能把一个系统从另一个系统中解除耦合。但是真的是这样么?幸运的是,耦合是一个有着具体定义的实际术语。
如果系统的依赖性需要通过更新系统来支持依赖性所发生的变化时,那么系统就是耦合的。
去耦系统是指这样一种系统:以任何方式更新系统时都不会影响系统的操作。松耦合和紧耦合是两个意义不太明确的术语,因为它们用来描述系统及其依赖性之间的耦合“程度”。由于每个系统都以不同的方式来进行耦合,确定耦合程度的方式也往往会因人而宜。
让我们看一下这种定义是如何应用于MOM系统的。我们假定有两个应用程序A1和A2。这些应用程序使用点对点域模型来通过队列进行联系。我主张A1和A2之间是去耦的,但是整个系统是耦合的。为什么要这样呢?因为整个系统不仅仅只有A1和A2,通过队列建立联系的是那些应用程序,包括队列和消息。在大多数的MOM系统中,产生和消费消息到队列中的应用程序都通过一种预定义消息类型来工作。如果消息格式必须更新的话,那么作为生产者和消费者的应用程序也必须进行更新。这就意味着即使应用程序本身是去耦的,但系统也是耦合的。
热心网友 时间:2023-06-22 06:12
将两个或两个以上的电路连接起来并使之相互影响的方法,称为耦合。这种连接而成的网络称为耦合电路。常见的耦合方式有阻容耦合,变压器耦合,直流耦合和交流耦合。