6

我一直在阅读这篇文章: Java 中松耦合和紧耦合的区别?

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

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

4

2 回答 2

29

紧耦合

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

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

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

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

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

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

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

这里traveller对象与对象紧密耦合car
如果traveller想从 更改为carplane则必须更改整个traveller班级,如下所示:

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

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

松耦合

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

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

  • 外部实体,可以根据一定的逻辑container注入car或对象,这是.planetraveller

例子:

Public class Traveller {
    Vehicle v;

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

这里traveller类注入一个car或一个plane对象。traveller如果我们想将依赖关系从汽车更改为飞机,则不需要在课堂上进行任何更改。

Traveller类接受了车辆引用,因此外部对象(容器)可以注入car对象或plane对象,具体取决于traveller.

于 2013-11-14T11:50:32.807 回答
6

紧耦合:-

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

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

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

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

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

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

例子:-

游客 在此处输入图像描述

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

例子 :-

旅行者 1 车1

松散耦合:-

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

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

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

  4. 应用依赖注入机制。

例如:-

界面

旅行者 2

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

  • 在 Traveler 中,这些都不需要改变,我们将依赖从汽车转移到自行车。

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

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

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

来源:- 对象之间的紧耦合和松耦合

于 2013-11-14T11:40:00.527 回答