Cupla liberă vs cuplarea strânsă în Java: diferența dintre cuplarea liberă și cuplarea strânsă

Publicat: 2021-05-02

Cuprins

Introducere

Java este un limbaj de programare orientat pe obiecte care folosește clase și obiecte. Cuplarea joacă un rol vital în Java dacă lucrați cu clase și obiecte în limbajul Java. Cuplarea se referă la gradul de cunoaștere pe care un element din Java îl are despre celălalt element. Este gradul de utilizare a unei clase de către o altă clasă. Acest articol vă va oferi o înțelegere profundă a cuplării în Java , tipurile sale cu exemple.

Ce este cuplarea în Java?

Cuplarea nu este altceva decât dependența unei clase de cealaltă. Dacă un obiect dintr-un cod folosește celălalt obiect din program, se numește cuplare liberă în Java . În cuplare, două clase sau obiecte colaborează și lucrează una cu cealaltă pentru a finaliza o sarcină predefinită. Înseamnă pur și simplu că un element necesită un alt element pentru a finaliza o funcție. Este cunoscută ca colaborare atunci când o clasă numește logica celeilalte clase.

Care sunt tipurile de cuplare?

Cuplarea în Java este de două tipuri.

Cuplaj liber în Java

Când două clase, module sau componente au dependențe scăzute una de cealaltă, se numește cuplare liberă în Java . Cuplarea liberă în Java înseamnă că clasele sunt independente unele de altele. Singura cunoaștere pe care o are o clasă despre cealaltă clasă este ceea ce cealaltă clasă a expus prin interfețele sale în cuplaj liber. Dacă o situație necesită utilizarea obiectelor din exterior, este denumită situație de cuplare liberă .

Aici, obiectul părinte îl folosește rar, iar obiectul poate fi schimbat cu ușurință din surse externe. Cuplajul liber din Java are avantajul față de cuplajul strâns, deoarece reduce întreținerea codului și eforturile. O schimbare într-o clasă nu necesită modificări în cealaltă clasă, iar două clase pot funcționa independent.

Exemplul 1: Imaginează-ți că ai creat două clase, A și B, în programul tău. Clasa A se numește volum, iar clasa B evaluează volumul unui cilindru. Dacă schimbați volumul clasa A, atunci nu sunteți forțat să schimbați clasa B. Aceasta se numește cuplare liberă în Java . Când clasa A necesită schimbări în clasa B, atunci aveți o cuplare strânsă.

Cod

cuplaj slăbit pachet;

clasa volum {

public static void main(String args[]) {

Cilindru b = cilindru nou(25, 25, 25);

System.out.println(b.getVolume());

}

}

clasă finală cilindru {

privat int volum;

Cilindru (lungime int, lățime int, înălțime int) {

aceasta.volum = lungime * latime * inaltime;

}

public int getVolume() {

volumul de retur;

}

}

Explicație: În exemplul de mai sus, clasa A și clasa B sunt slab cuplate.

Exemplul 2

import java.io.IOException;

interfață Food {

public void display();

}

clasa italiana {

Alimentele;

public italian(alimentare){

aceasta.s = s;

}

afișare public void(){

System.out.println(„italiană”);

s.afisare();

}

}

Clasa instrumente chinezești Mâncare {

chineză publică(){}

afișare public void(){

System.out.println(„chineză”);

}

}

clasa instrumente mexicane Mâncare {

public mexican(){}

afișare public void(){

System.out.println(„Mexican”);

}

}

test de clasă publică {

public static void main(String args[]) aruncă IOException {

Mâncare b = chineză nouă();

Mâncare c = mexican nou();

Italiana a = italian nou(b);

//a.display() va tipări italiană și chineză

un ecran();

Italiana a1 = italian nou(c);

//a.display() va tipări italiană și mexicană

a1.display();

}

}

Ieșire

Italiană

chinez

Italiană

mexican

Explicație: În exemplul de mai sus, toate cele trei clase sunt slab cuplate. Înseamnă pur și simplu că puteți folosi interfața alimentară pentru a oferi servicii prin injectarea oricăruia dintre serviciile implementate.

Obțineți diplome online de Inginerie software de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Cuplaje strânse

Când două clase sunt foarte dependente una de cealaltă, se numește cuplare strânsă. Apare atunci când o clasă își asumă prea multe responsabilități sau când o schimbare într-o clasă necesită schimbări în cealaltă clasă. În cuplarea strânsă, un obiect (obiect părinte) creează un alt obiect (obiect copil) pentru utilizare. Dacă obiectul părinte știe mai multe despre cum a fost implementat obiectul copil, putem spune că obiectul părinte și copilul sunt strâns cuplate.

Exemplu: Imaginează-ți că ai creat două clase A și B în programul tău. Clasa A se numește volum, iar clasa B evaluează volumul unui cilindru. Dacă faceți modificări în volum, atunci aceleași modificări se vor reflecta în clasa B. Prin urmare, putem spune că ambele clase sunt foarte dependente una de cealaltă și sunt strâns cuplate.

Cod

cuplare strânsă a pachetului;

clasa volum {

public static void main(String args[]) {

Cilindru b = cilindru nou(15, 15, 15);

System.out.println(b.volum);

}}

clasa Cilindru {

public int volum;

Cilindru (lungime int, lățime int, înălțime int) {

aceasta.volum = lungime * latime * inaltime; }}

Ieșire

3375

Explicație: În exemplul de mai sus, clasa A și clasa B sunt legate împreună și lucrează una cu cealaltă ca o echipă.

Diferențele dintre cuplarea liberă și cuplarea strânsă

Următorul tabel listează diferențele dintre cuplarea slăbită și cuplarea strânsă.

Cuplaj slab Cuplaje strânse
Obiectele sunt independente unele de altele. Un obiect depinde de celălalt obiect pentru a finaliza o sarcină.
Testabilitate mai bună Testabilitatea nu este la fel de mare ca cuplarea liberă în Java .
Comunicare asincronă Comunicare sincronă
Mai puțină coordonare. Schimbarea codului între două clase nu este ușoară. Oferă o mai bună coordonare. Puteți schimba cu ușurință codul între două obiecte.
Nici un concept de interfață Urmează principiile GOF la interfață
Flux mai mic de informații Mai multe informații flux
Foarte schimbător Nu are capacitatea de schimbare.

Concluzie

Pe scurt, cuplarea liberă în Java este mult mai bună în comparație cu cuplarea strânsă. Oferă o mai bună flexibilitate și reutilizare a codului. Deoarece cele două clase sunt independente una de cealaltă, modificările codului sunt foarte ușoare. De asemenea, oferă o mai bună testabilitate.

Dacă sunteți interesat să aflați mai multe despre Dezvoltarea de software, consultați Master of Science in Computer Science de la LJMU, care este conceput pentru profesioniști care lucrează și oferă 12+ proiecte și sarcini, 1-ON-1 cu mentori din industrie, peste 500 de ore de învățare.

Pregătiți-vă pentru o carieră a viitorului

Aplicați pentru Master of Science în Machine Learning și AI