松散和紧密耦合将用作真实场景?

时间:2013-11-14 11:17:15

标签: java

我已经提到了这个链接, Difference between loose and tight coupling in Java?

在我提到这个之后,我仍然感到困惑,根本不理解。

作为Java初学者,我无法轻易理解它。请有人建议一个更好的例子吗?

任何人都可以说我,在设计代码时,在java中耦合的重要性以及为什么,在哪里,如何以及何时需要它?

2 个答案:

答案 0 :(得分:27)

紧耦合

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

  • 如果发生这种情况,两个类之间就会出现所谓的紧耦合。

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

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

这意味着car课程将取决于traveller对象。

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

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

此处traveller对象与<{1}}对象紧密耦合 如果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不必从travellercar对象创建自己的类,而是从plane

  • 获取它
  • 当对象允许依赖注入机制时。

  • 外部实体container可以根据某个逻辑注入containercar个对象,这是plane的要求。

示例:

traveller

此处Public class Traveller { Vehicle v; Public void setV(Vehicle v) { this.V = V; } Public void startJourney() { V.move(); } } 类会注入travellercar个对象。如果我们想要将依赖项从汽车更改为飞机,则plane类不需要进行任何更改。

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

答案 1 :(得分:6)

<强>紧密耦合的: -

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

  2. 如果一个类调用另一个类逻辑,那么它被称为协作。

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

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

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

  6. 在上述旅行者类和汽车类中,旅行者对象依赖的汽车类对象。

  7. 示例: -

    Traveller enter image description here

    • 在上面的示例中,旅行者对象与汽车紧密耦合 对象,因为如果你想使用自行车对象到位汽车对象 那么,我们需要在T​​raveler类中进行更改

    示例: -

    travellor 1 car1

    <强>松耦合: -

    1. 在Loose-Coupling中,当一个对象依赖于另一个类对象时,某个外部实体会将该依赖对象提供给我们称为Container的外部对象的主对象。

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

    3. 课程应遵循POJI / POJO模式。

    4. 应用依赖注入机制。

    5. 例如: -

      interface

      travellor 2

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

      • 在旅行者中,这些都没有变化,我们正在改变 从汽车到自行车的依赖。

      • 在上面的旅行者课程中,我们是令牌车辆参考,所以 外部对象(Container)可以注入汽车对象(或) 自行车对象,取决于旅行者的要求。

      • 在弹簧框架工作中,弹簧容器遵循依赖注入 机制并注入main所需的依赖项对象 对象

      • 由于其中一个主要原因,Spring框架工作取得了很大成功 是否促进了对象之间的松散耦合。

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