Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]czy utworzenie obiektu w klasie to złamanie zasady low coupling?
Forum PHP.pl > Forum > Przedszkole
porzeczki
Nie wiem czy dobrze rozumiem zasadę low coupling. Czy poniższe to jej złamanie?


  1. class A
  2. {
  3. public function calculate()
  4. {
  5. ...
  6. $b = $this->getB();
  7. $b->do();
  8. }
  9.  
  10. protected function getB()
  11. {
  12. return new B();
  13. }
  14. }


Rozumiem, że w low coupling chodzi o to by modyfikacja klasy B nie powodowała modyfikacji w klasie A.
Ale co w tym sensie daje mi wstrzyknięcie obiektu B przez konstruktor A?

viking
Porównaj z:

  1. class A
  2. {
  3. protected $b;
  4.  
  5. public function calculate()
  6. {
  7. ...
  8. $this->b->do();
  9. }
  10.  
  11. public function setB(BInterface $b)
  12. {
  13. $this->b = $b;
  14. }
  15. }
porzeczki
rozumiem, czyli dopóki nie zastosuję abstrakcji to nie ma znaczenia w kontekście "low coupling" czy tej obiekt tworzę wewnątrz klasy czy wstrzykuję przez konstruktor/setter. Right?
viking
Loose coupling polega na tym że obiekty powinny być ze sobą powiązane w najmniej ścisły sposób. Tworzenie na sztywno obiektu jest przeciwieństwem tego. Zero elastyczności, wymagało by przepisania całego systemu w przypadku zmian.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.