Container de injectare a dependențelor — RexDac Academy

RexDac AcademyNote tehnice · Ajută să ai câteva noțiuni de bază
0%Note publicate citite · pe acest dispozitiv

Principii și arhitectură / Injectarea dependențelor

Container de injectare a dependențelor

Note originale de SunDiaL · Vezi sursa în engleză

Un container DI reprezintă indirecția aplicată rădăcinii compoziției și devine creatorul din GRASP. Este o clasă al cărei scop este să gestioneze dependențele și duratele lor de viață.

Domeniul duratei de viață a obiectelor

Domeniul duratei de viață extinde sensul pe care domeniul de vizibilitate îl avea pentru variabilele simple. Sensul trece de la „cât timp este o variabilă vie/vizibilă” la „ce fel de viață ar trebui să aibă această dependență (obiect/clasă)”. Aici, „viață” înseamnă „strategie de instanțiere”:

  • Singleton = Aceeași instanță pentru toate clasele
  • Scoped = O instanță diferită pentru fiecare „domeniu” (aici domeniul poate însemna o cerere web, un gestionar de evenimente sau altceva; depinde de context)
  • Transient = O instanță diferită pentru fiecare clasă