【问题标题】:Where loose and tight coupling would be used as a real scenario?松耦合和紧耦合在哪里被用作真实场景?
【发布时间】:2013-11-27 09:10:00
【问题描述】:

我一直在阅读这篇文章: Difference between loose and tight coupling in Java?

读完之后我还是一头雾水,完全不明白。我是 Java 初学者。

Java 中耦合的重要性是什么?为什么?在设计代码时,在哪里、如何以及何时需要它?

【问题讨论】:

  • 试着通过耦合自己来解释你所理解的,如果这是一个错误的假设,我们会告诉你;-)
  • @Darwind 紧耦合意味着更多的依赖。多个类相互依赖。松散耦合意味着更少的依赖,因此类不需要相互依赖。对不起,如果我告诉你有什么问题

标签: java


【解决方案1】:

紧耦合

  • 在复杂的情况下,一个类的逻辑会调用另一个类的逻辑,只是为了提供相同的服务

  • 如果发生这种情况,则两个类之间存在所谓的紧耦合。

  • 在这种情况下,想要从第二个类调用逻辑的第一个类必须从第二个类创建一个对象

示例:我们有两个类,第一个是traveller,第二个是carTraveller类是car类的调用逻辑;在这种情况下,旅行者类创建了一个汽车类的对象。

这意味着car 类将依赖于traveller 对象。

Public class Traveller {
    Car c = new Car();
    Public void startJourney() {
        c.move();
    }
}

Public class Car {
    Public void move(){
        ...
    }
}

这里traveller 对象与car 对象紧密耦合
如果traveller 想从car 更改为plane,则整个traveller 类必须更改如下:

Public class Traveller {
    Plane p = new Plane();
    Public void startJourney() {
        p.move();
    }
}

Public class Plane {
    Public void move(){
        ...
    }
}

松散耦合

  • 我们的主要对象traveller 在这种情况下将允许外部实体,即所谓的container 提供object。所以traveller 不必从carplane 对象创建自己的类,它会从container 获取它

  • 当一个对象允许依赖注入机制时。

  • 外部实体container可以根据一定的逻辑注入carplane对象,这是traveller的要求。

示例:

Public class Traveller {
    Vehicle v;

    Public void setV(Vehicle v) {
        this.V = V;
    }
    Public void startJourney() {
        V.move();
    }
}

这里traveller 类注入carplane 对象。如果我们想将依赖关系从汽车更改为飞机,则无需更改 traveller 类。

Traveller 类采用车辆引用,因此外部对象(容器)可以注入 car 对象或 plane 对象,取决于 traveller 的要求。

【讨论】:

  • “这意味着汽车等级将取决于旅行者对象”。我不认为这是正确的。依赖于汽车的是旅行者对象。一个很好的例子。
【解决方案2】:

紧耦合:-

  1. 在java中创建复杂的应用程序时,一个类的逻辑会调用另一个类的逻辑为客户端提供相同的服务。

  2. 如果一个类调用另一个类逻辑,则称为协作。

  3. 当一个类与另一个类协作时,这两个类之间存在紧密耦合。

  4. 如果一个类想要调用第二类的逻辑,那么他们的第一类需要第二类的对象,这意味着第一类创建第二类的对象。

  5. 例如,如果我们有两个类叫做traveler和car,那么traveler类就是car类的调用逻辑;在这种情况下,旅行者类创建了一个汽车类的对象。

  6. 在上面的traveler类和car类中,traveler对象的依赖的car类对象。

示例:-

  • 在上面的示例中,旅行者对象与汽车紧密耦合 对象,因为如果您想使用自行车对象,请放置汽车对象 然后,我们需要对 Traveler 类进行更改

示例:-

松耦合:-

  1. 在松耦合中,当一个对象依赖于另一个类对象时,某些外部实体会将依赖对象提供给我们称之为容器的外部对象的主对象。

  2. 为了获得对象之间的松耦合,需要以下两条规则

  3. 类应遵循 POJI/POJO 模型。

  4. 应用依赖注入机制。

例如:-

  • 在上述旅行者类中,外部实体注入任一汽车 (或)自行车对象。

  • 在 Traveler 中,无需进行这些更改,我们正在转移 从汽车到自行车的依赖。

  • 在上面的 traveler 类中,我们是 token 车辆引用,所以 外部对象(容器)可以注入汽车对象(或) 自行车对象,取决于旅行者的要求。

  • 在spring框架中,spring容器遵循依赖注入 机制并注入 main 所需的依赖对象 对象。

  • Spring 框架工作之所以大获成功,主要原因之一是 是否促进了对象之间的松散耦合。

来源:- Tight-coupling and Loose-coupling between objects

【讨论】:

  • 是的,现在我明白了。谢谢!
猜你喜欢
  • 2017-05-09
  • 2018-11-19
  • 2022-07-06
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多