我已经提到过这个链接, Java中松散和紧耦合的区别?
在我提到这一点后,我仍然感到困惑,根本不明白.
作为Java初学者,我无法轻易理解它.请有人能提出更好的例子吗?
任何人都可以说我,在java中耦合的重要性以及设计代码时需要的原因,地点,方式和时间是什么?
ben*_*nka 27
在复杂的情况下,一个类的逻辑将调用另一个类的逻辑只是为了提供相同的服务
如果发生这种情况,那么两个类之间就会出现所谓的紧耦合.
在这种情况下,想要从第二个类调用逻辑的第一个类必须从第二个类创建一个对象
示例:我们先有两个类traveller,第二个是a car.Travellerclass正在调用类的逻辑car; 在这种情况下,旅行者类创建汽车类的对象.
这意味着car课程将取决于traveller对象.
Public class Traveller {
Car c = new Car();
Public void startJourney() {
c.move();
}
}
Public class Car {
Public void move(){
...
}
}
Run Code Online (Sandbox Code Playgroud)
这里的traveller对象与对象紧密耦合car.
如果traveller想要改变car,plane那么整个traveller类必须改变如下:
Public class Traveller {
Plane p = new Plane();
Public void startJourney() {
p.move();
}
}
Public class Plane {
Public void move(){
...
}
}
Run Code Online (Sandbox Code Playgroud)
我们的主要对象,traveller在这种情况下将允许一个外部实体,一个所谓container的提供object.因此,traveller不必从它car或plane它将从中获取它的对象创建自己的类container
当一个对象允许依赖注入机制时.
外部实体,container可以根据一定的逻辑注入car或plane反对,一个要求traveller.
例:
Public class Traveller {
Vehicle v;
Public void setV(Vehicle v) {
this.V = V;
}
Public void startJourney() {
V.move();
}
}
Run Code Online (Sandbox Code Playgroud)
这里的traveller类注入一个car或一个plane对象.traveller如果我们想要将依赖项从汽车更改为飞机,则无需在课程中进行任何更改.
Travellerclass采用了车辆参考,因此外部对象(Container)可以注入car对象或plane对象,具体取决于要求traveller.
紧耦合:-
在java中创建复杂的应用程序时,一个类的逻辑将调用另一个类的逻辑来为客户端提供相同的服务.
如果一个类调用另一个类逻辑,那么它被称为协作.
当一个类与另一个类合作时,两个类之间存在紧密耦合.
如果一个类想要调用第二个类的逻辑,那么它们的第一个类需要第二个类的对象,这意味着第一个类创建第二个类的对象.
例如,如果我们有两个叫做旅行者和汽车的类,旅行者类就是调用汽车类的逻辑; 在这种情况下,旅行者类创建汽车类的对象.
在上述旅行者类和汽车类中,旅行者对象依赖的汽车类对象.
例:-

示例: -

松耦合: -
在Loose-Coupling中,当一个对象依赖于另一个类对象时,一些外部实体会将该依赖对象提供给我们称为Container的外部对象的主对象.
为了在对象之间获得松散耦合,需要以下两个规则
这些课程应遵循POJI/POJO模型.
应用依赖注入机制.
例如:-


在上面的旅行者类中,外部实体注入汽车(或)Bike对象.
在旅行者中,这些都没有变化,我们正在将依赖性从汽车转移到自行车.
在上面的旅行者类中,我们是令牌车辆参考,因此外部对象(Container)可以注入汽车对象(或)Bike对象,取决于旅行者的要求.
在spring框架工作中,spring容器遵循依赖注入机制并注入主对象所需的依赖对象.
Spring框架工作取得了很大成功,因为其中一个主要原因是它促进了对象之间的松散耦合.
来源: - 物体之间的紧耦合和松耦合
| 归档时间: |
|
| 查看次数: |
13684 次 |
| 最近记录: |