Java — это объектно-ориентированный язык программирования. Соединение в Java играет важную роль при работе с классами и объектами Java. Это в основном относится к тому уровню знаний, который один класс знает о другом классе.
Coupling на Java
Ситуация, когда объект может использоваться другим объектом, называется связью. Это:
- процесс совместной работы и работы друг для друга;
- означает, что один объект требует другого объекта для выполнения назначенной ему задачи;
- в основном использование объекта другим объектом, тем самым уменьшая зависимость между модулями;
- называется совместной работой, если один класс вызывает логику другого класса.
Типы сцепления
Связывание в Java далее делится на два типа, а именно:
-
- Тесная связь (Tight coupling).
- Слабая связь (Loose coupling).
Тесная связанность в Java
Это когда группа классов сильно зависит друг от друга. Сценарий возникает, когда класс принимает на себя слишком много обязанностей или когда одна проблема распространяется на многие классы, а не на собственный класс. Ситуация, когда объект создает другой объект для его использования, называется Tight Coupling.
Родительский объект будет знать больше о дочернем объекте, поэтому оба объекта называются тесно связанными. Фактор зависимости и тот факт, что объект не может быть изменен кем-либо еще, помогает ему достичь термина, тесно связанного.
Пример: Предположим, вы сделали два класса. Первый класс — это класс Volume, а другой класс оценивает объем блока. Любые изменения, которые будут сделаны в классе Volume, будут отражены в классе Box. Следовательно, оба класса взаимозависимы друг от друга. Эта ситуация особенно называется тесной связью.
Ниже приведенный код поможет вам понять процесс реализации тесной связи.
Пример 1
package tightcoupling;
class Volume {
public static void main(String args[]) {
Box b = new Box(15, 15, 15);
System.out.println(b.volume);
}
}
class Box {
public int volume;
Box(int length, int width, int height) {
this.volume = length * width * height;
}
}
Вывод:
3375
Пример 2
package tightcoupling;
public class Edureka {
public static void main(String args[]) {
A a = new A();
a.display();
}
}
class A {
B b;
public A() {
b = new B();
}
public void display() {
System.out.println("A");
b.display();
}
}
class B {
public B() {
}
public void display() {
System.out.println("B");
}
}
Вывод:
A B
Слабая связь
Когда объект получает объект, который будет использоваться из внешних источников, мы называем это слабой связью. Другими словами, слабая связь означает, что объекты независимы. Слабосвязанный код снижает затраты на обслуживание и усилия. Это был недостаток тесно связанного кода, который был удален слабосвязанным кодом.
Пример 1
package lc;
class Volume {
public static void main(String args[]) {
Box b = new Box(25, 25, 25);
System.out.println(b.getVolume());
}
}
final class Box {
private int volume;
Box(int length, int width, int height) {
this.volume = length * width * height;
}
public int getVolume() {
return volume;
}
}
Вывод:
15625
Пример 2
package losecoupling;
import java.io.IOException;
public class Edureka {
public static void main(String args[]) throws IOException {
Show b = new B();
Show c = new C();
A a = new A(b);
a.display();
A a1 = new A(c);
a1.display();
}
}
interface Show {
public void display();
}
class A {
Show s;
public A(Show s) {
this.s = s;
}
public void display() {
System.out.println("A");
s.display();
}
}
class B implements Show {
public B() {
}
public void display() {
System.out.println("B");
}
}
class C implements Show {
public C() {
}
public void display() {
System.out.println("C");
}
}
Вывод:
A
B
A
C
Разница
| Тесная связь | Слабая связь |
|---|---|
| Больше взаимозависимости | Меньшая зависимость, лучшая способность к тестированию |
| Следует принципам GOF программы для взаимодействия | Не предоставляет концепцию интерфейса |
| Синхронная связь | Асинхронная связь |
| Больше координации, обмен части кода / объектов между двумя объектами прост | Меньше координации, нет простоты |
