• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy taki sposób wstrzykiwania zależności tworzy silne wiązanie?

Object Storage Arubacloud
+1 głos
217 wizyt
pytanie zadane 9 czerwca 2021 w PHP przez CSSoup Mądrala (6,460 p.)

Pytanie może głupie, ale nigdy się nad tym nie zastanawiałem. Chodzi mi o to czy takie wstrzykiwanie zależności jakie mamy na poniższym screenie (zaznaczone na żółto), jest okej, czy może tworzy zbyt mocne wiązanie między Controllerem, a obiektem PostUpdatedNotification?

1 odpowiedź

+1 głos
odpowiedź 9 czerwca 2021 przez Wiciorny Ekspert (269,710 p.)

zacznijmy od tego, że w pokazanym przykładzie nie wstrzykujesz żadnej zależności i to nie jest  Dependency Injection - zapoznaj się nieco lepiej z pojęciem. 

(zaznaczone na żółto),

na żółto to zaznaczone jest tworzenie obiektu - tworzysz go TY jako programista, ale działasz nie na rzecz obiektu zewnętrznego a wywołania metody, więc tak naprawdę DI nie ma, jeśli korzystałbyś tutaj z Pola klasy, która zawiera obiekt wstrzyknięty to może. 
Nawiązując dalej, czy ŁAMIE TOLOOSE COUPLING ? Niestety tak, jak bardzo ? Nie wiadomo - dlatego, że nie wiemy jaka logika stoi za twoim obiektem tworzonym, co udostępnia, jaki jest jego interfejs, zarówno jakie sa np. metody aspektowe. 
Dodatkowo też pytanie jak ogólnie i co jest zadaniem obiektu dla którego zdefiniowana jest operacja update(); 

Pojęcie SILNEGO WIĄZANIA W MYŚL GRASP- to niestety oceniamy na poziomie architektury, natomiast tutaj bardziej pojęcie bym wiązał z SOLID -  w tym przypadku, mamy do czynienia właśnie z zasadą DEPENDENCY INJECTION 
która jasno mówi Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych 

Teraz pojawia się pytanie : czy faktycznie tak jest? Który u Ciebie obiekt jest którym modułem. W razie pytań fajnie przedyskutujemy. 

komentarz 11 czerwca 2021 przez CSSoup Mądrala (6,460 p.)
Co do samego kodu to nie jest mój tylko z filmiku na yt na temat Laravela. Właśnie zaciekawiło mnie to, z tego względu że bardzo często w wielu przykładach czy to bardziej zaawansowanych czy też mniej spotykam taką metodę przekazywania obiektu w różnych miejscach aplikacji.

Ogólnie samo tworzenie tego obiektu odbywa się w kontrolerze, więc w ostateczności tutaj można byłoby przymknąć oko na takie tworzenie obiektu?

A co do metody update to to updatuje ona w Eloquencie model użytkownika, pod spodem wykorzystuje on wzorzec Active Record.

Podobne pytania

0 głosów
1 odpowiedź 271 wizyt
pytanie zadane 24 czerwca 2017 w PHP przez Marduczek Użytkownik (520 p.)
0 głosów
2 odpowiedzi 458 wizyt
pytanie zadane 13 września 2016 w PHP przez deimos Nowicjusz (120 p.)
0 głosów
1 odpowiedź 212 wizyt
pytanie zadane 10 maja 2020 w PHP przez XiverKi Bywalec (2,050 p.)

92,556 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...