Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在什么情况下,松耦合和紧耦合将被用作真实场景?_Java - Fatal编程技术网

Java 在什么情况下,松耦合和紧耦合将被用作真实场景?

Java 在什么情况下,松耦合和紧耦合将被用作真实场景?,java,Java,我一直在读这篇文章: 读了这篇文章后,我仍然感到困惑,完全不理解它。我是Java初学者 耦合在Java中的重要性是什么?为什么?设计代码时需要在何处、如何以及何时使用它?紧密耦合:- 在java中创建复杂应用程序时,一个类的逻辑将调用另一个类的逻辑,以向客户端提供相同的服务 如果一个类调用另一个类逻辑,则称为协作 当一个类与另一个类协作时,两个类之间存在紧密耦合 如果一个类想要调用第二个类的逻辑,那么第一个类需要第二个类的对象,这意味着第一个类创建第二个类的对象 例如,若我们有两个类称为Tra

我一直在读这篇文章:

读了这篇文章后,我仍然感到困惑,完全不理解它。我是Java初学者


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

紧密耦合:-

  • 在java中创建复杂应用程序时,一个类的逻辑将调用另一个类的逻辑,以向客户端提供相同的服务

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

  • 当一个类与另一个类协作时,两个类之间存在紧密耦合

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

  • 例如,若我们有两个类称为Traveler和car,Traveler类调用car类的逻辑;在本例中,Traveler类创建了car类的对象

  • 在上述Traveler类和car类中,car类对象是Traveler对象的依赖项

  • 示例:-

    • 在上面的示例中,Traveler对象与car紧密耦合 对象,因为如果要使用“自行车”对象,请使用原地车对象 然后,我们需要改变旅行者的等级
    示例:-

    松耦合:-

  • 在松散耦合中,当一个对象依赖于另一个类对象时,一些外部实体将把该依赖对象提供给我们称为容器的外部对象的主对象

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

  • 这些类应该遵循POJI/POJO模型

  • 应用依赖注入机制

  • 例如:-

    • 在上面的traveler类中,一个外部实体注入任何一辆车 (或)自行车物体

    • 在traveler中,这些不需要更改,我们正在改变 从汽车到自行车

    • 在上述旅行者类别中,我们是代币车辆参考,因此 外部对象(容器)可以注入汽车对象(或) 自行车对象,取决于旅行者的要求

    • 在spring框架中,spring容器遵循依赖项注入 机制,并注入主 反对

    • 弹簧架之所以获得如此大的成功,主要原因之一是 它促进了对象之间的松散耦合

    来源:-

    紧密耦合
    • 在复杂的情况下,一个类的逻辑将调用另一个类的逻辑来提供相同的服务

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

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

    示例:我们有两类,第一类是
    traveler
    ,第二类是
    car
    Traveler
    class调用
    car
    class的逻辑;在本例中,Traveler类创建了car类的对象

    这意味着
    汽车
    类别将取决于
    旅行者
    对象。

    Public class Traveller {
        Car c = new Car();
        Public void startJourney() {
            c.move();
        }
    }
    
    Public class Car {
        Public void move(){
            ...
        }
    }
    
    这里的
    旅行者
    对象与
    汽车
    对象紧密耦合。
    如果
    旅行者
    想要从
    汽车
    更改为
    飞机
    ,则整个
    旅行者
    等级必须更改如下:

    Public class Traveller {
        Plane p = new Plane();
        Public void startJourney() {
            p.move();
        }
    }
    
    Public class Plane {
        Public void move(){
            ...
        }
    }
    
    松耦合
    • 我们的主要对象,
      Traveler
      在本例中,将允许外部实体,即所谓的
      容器
      提供
      对象
      。因此,
      Traveler
      不必从
      car
      plane
      对象创建自己的类,它将从
      容器中获取该类

    • 当对象允许依赖项注入机制时

    • 外部实体,
      容器
      可以基于特定逻辑注入
      汽车
      平面
      对象,这是
      旅行者
      的要求

    示例:

    Public class Traveller {
        Vehicle v;
    
        Public void setV(Vehicle v) {
            this.V = V;
        }
        Public void startJourney() {
            V.move();
        }
    }
    
    在这里,
    Traveler
    类注入一个
    car
    或一个
    plane
    对象。如果我们想将依赖项从汽车更改为飞机,则无需更改Traveler


    Traveler
    类获取了一个车辆引用,因此外部对象(容器)可以注入
    car
    对象或
    plane
    对象,这取决于
    Traveler

    的要求尝试通过耦合自己来解释您理解的内容,我们会告诉您这是否是一个错误的假设;-)@Darwind紧耦合意味着更多的依赖性。多个类相互依赖。松散耦合意味着依赖性更小,因此类不需要相互依赖。对不起,如果我告诉你任何错误的事情是的,现在我明白了。谢谢“这意味着汽车类别将取决于Traveler对象”。我认为这是不对的。依赖于汽车的是旅行者对象。这是一个很好的例子。