我一直在阅读这篇文章: Java 中松耦合和紧耦合的区别?
读完之后,我还是一头雾水,完全不明白。我是Java初学者。
Java中耦合的重要性是什么,为什么?在设计代码时,在哪里、如何以及何时需要它?
我一直在阅读这篇文章: Java 中松耦合和紧耦合的区别?
读完之后,我还是一头雾水,完全不明白。我是Java初学者。
Java中耦合的重要性是什么,为什么?在设计代码时,在哪里、如何以及何时需要它?
在复杂的情况下,一个类的逻辑会调用另一个类的逻辑,只是为了提供相同的服务
如果发生这种情况,则两个类之间存在所谓的紧耦合。
在这种情况下,想要从第二个类调用逻辑的第一个类必须从第二个类创建一个对象
示例:我们有两个类,第一个是traveller
,第二个是 a car
。Traveller
class 是类的调用逻辑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
不必从car
orplane
对象创建自己的类,它会从container
当一个对象允许依赖注入机制时。
外部实体,可以根据一定的逻辑container
注入car
或对象,这是.plane
traveller
例子:
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
.
紧耦合:-
在java中创建复杂的应用程序时,一个类的逻辑会调用另一个类的逻辑为客户端提供相同的服务。
如果一个类调用另一个类逻辑,则称为协作。
当一个类与另一个类协作时,这两个类之间存在紧密耦合。
如果一个类想要调用第二类的逻辑,那么他们的第一类需要第二类的对象,这意味着第一类创建第二类的对象。
例如,如果我们有两个类叫做 traveler 和 car,那么 traveler 类就是调用 car 类的逻辑;在这种情况下,旅行者类创建了一个汽车类的对象。
在上面的 traveler 类和 car 类中,car 类对象为 traveler 对象的依赖。
例子:-
例子 :-
松散耦合:-
在松耦合中,当一个对象依赖于另一个类对象时,一些外部实体会将依赖对象提供给我们称之为容器的外部对象的主对象。
为了在对象之间获得松耦合,需要以下两条规则
类应遵循 POJI/POJO 模型。
应用依赖注入机制。
例如:-
在上述旅行者类中,外部实体注入汽车(或)自行车对象。
在 Traveler 中,这些都不需要改变,我们将依赖从汽车转移到自行车。
在上面的旅行者类中,我们是标记车辆引用,因此外部对象(容器)可以注入汽车对象(或)自行车对象,这取决于旅行者的要求。
在spring框架中,spring容器遵循依赖注入机制,注入主对象所需的依赖对象。
Spring 框架之所以大获成功,主要原因之一是它促进了对象之间的松散耦合。
来源:- 对象之间的紧耦合和松耦合