Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Object-oriented programming _ Dynamiczna zmiana implementacji interfejsu

Napisany przez: pjplonka 4.09.2019, 10:36:40

Witam,

Jeśli mam klasę User i w konstruktorze dostaje interfejs jako zależność, np: UserConfigInterface, a ja w aplikacji potrzebuję dwóch instancji klasy User:
- jedna z zależnością DefaultUserConfig implements UserConfigInterface
- drugą z zależnością WeirdUserConfig implements UserConfigInterface

To czy prawidłowym podejściem byłoby utworzenie w DI dwóch instancji klasy User z innymi zależnościami?

np. pod kluczem 'UserA' byłaby pierwsza wersja, a pod kluczem 'UserB' byłaby druga opcja.

Wtedy z DI mogę wyciągać konkretne implementacje na zasadzie:

  1. $di->get('UserA');
i
  1. $di->get('UserB');

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)