Legea Demetrului este un ghid de proiectare pentru dezvoltarea software-ului, în special în programarea orientată pe obiecte. Scopul său este de a reduce dependența dintre obiecte, de a face sistemele mai modulare, mai ușor de întreținut și mai puțin predispuse la bug-uri.

Înţelegerea legii demeterului

Legea Demeter, adesea rezumată ca "doar vorbi cu prietenii tăi imediat," încurajează obiectele să comunice doar cu colaboratorii lor directi. Aceasta înseamnă că un obiect ar trebui să invoce metode de:

  • Chiar el
  • Obiecte trecute ca parametri
  • Obiecte pe care le creează
  • Obiectele sale componente directe

Prin respectarea acestei reguli, dependențele obiectului sunt minimizate, reducând riscul de cuplare strânsă și făcând codul mai ușor de modificat sau extins.

Punerea în aplicare a legii demeterului

Punerea în aplicare a Legii Demeter implică proiectarea de clase și metode care nu ajung adânc în grafice de obiecte. De exemplu, în loc de asteptare:

order.get Client().getAddress().getCity(]]

Este mai bine să se furnizeze o metodă care returnează informațiile necesare direct:

order.get ClientCity ()

Sfaturi de refacere

  • Încapsulează lanţuri complexe în interiorul clasei.
  • Crearea unor metode care să expună doar datele necesare.
  • Utilizați modele de proiectare cum ar fi Facade sau Mediator pentru a reduce dependențele.
  • Menţineţi cursurile concentrate pe o singură responsabilitate.

Beneficiile de a urma Legea Demeter

Admiterea la această lege oferă mai multe avantaje:

  • Reduce cuplarea între clase.
  • Îmbunătățește lizibilitatea și menținerea codului.
  • Face unitatea de testare mai ușor prin izolarea obiectelor.
  • Facilitează reamenajarea și extinderea codului.

Pe scurt, implementarea Legii Demetrului în proiectarea orientată pe obiecte promovează un cod mai curat, mai modular. Încurajează dezvoltatorii să se gândească atent la interacțiunile și dependențele obiect, ceea ce duce la sisteme software mai robuste.