Przekazywanie konfiguracji obiektom

0

Mamy klasę odpowiedzialną za wczytywanie ustawień z pliku (klasa C). Dostarcza ona konfigurację dla pewnych komponentów (S1 i S2). Wszystkie te komponenty korzystają z jednej klasy (klasa T), która też wymaga konfiguracji.
Obecnie klasa T jest konfigurowana przez pola statyczne tej klasy. Odbywa się to w momencie wczytywania konfiguracji.
Oczywiście najlepiej by było, gdyby konfiguracja byłą dostarczana na poziomie obiektów, a nie klas. Byłoby to troszeczkę bardziej uniwersalne i obiektowe rozwiązanie.
Ale to by o0znaczało, że np S1 tworzy obiekt klasy T i dostarcza mu odpowiednią konfigurację (przez jakiś interfejs klasy C).
Nie podoba mi się to rozwiązanie, bo albo trzeba przekazywać pełną konfigurację do obiektu S1 w momencie jego tworzenia, albo przez parametr metody. Wolałbym, żeby z punktu widzenia klienta klasy S1 sposób działania klasy T był nieznany.

0

Nie wiem czy dobrze zrozumiałem problem, jeśli nie to najlepiej podaj prosty konkretny przykład.

Może chodzi Ci singleton z konfiguracją ?
Klasy potrzebujące konfiguracji mogły by sobie same ją pobierać (jeśli konfiguracja jest wspólna).

Możesz też wprowadzić factorkę, którą inne klasy będą prosiły o stworzenie odpowiednich obiektów bez świadomości tego, jak one faktycznie są tworzone.

Można też przekazywać kolejnym klasom konfiguracje w postaci interfejsu do konstruktora / metod / setterów (w zależności od konkretnych potrzeb), a faktyczna implementacja interfejsu będzie oddzielona od reszty - domena nie będzie świadoma źródła danych.

0

Myślę że tutaj dobry byłby wzorzec strategia.

0

A jakis kontener DI wzglednie wlasne DI?

1 użytkowników online, w tym zalogowanych: 0, gości: 1