![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
W aplikacji jest kilka klas implementujących ten sam interfejs.
W dalszym opisie będę te klasy nazywał "tymi klasami" Każda z tych klas ma metody, które musi posiadać ze względu na wymóg zawarty w interfejsie. Oprócz tego każda z tych klas korzysta z kilku metod, takich samych dla każdej z tych klas. I teraz pytanie: jak udostępnić te wspólne metody dla każdej z tych klas? Jest kilka możliwości: 1. Te klasy dziedziczą metody wspólne dla tych klas po klasie abstrakcyjnej, która te metody deklaruje. 2. Te klasy używają wspólnego trait z tymi metodami wspólnymi dla tych klas. 3. Specjalny obiekt zawierający wspólne dla tych klas metody wstrzykiwany jest do instancji każdej z tych klas. 4. Instancja każdej z tych klas wstrzykiwana jest do instancji pewnej specjalnej klasy, która posiada te metody wspólne dla tych klas. A może jeszcze inaczej? Mam nadzieję, że to zrozumiałe. Z góry dziękuję |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czy 4. to strategia - na pierwszy rzut oka tak, ale po przemyśleniu wydaje mi się, że autorowi chodzi tutaj o dekorator, tylko źle to opisał. Czemu tak mi się wydaje? Ponieważ współdzielona logika jest jedna, a strategia zakłada, że każda klasa implementuje daną metodę inaczej.
Najlepiej jak poda szczegóły, to będzie łątwiej. Ten post edytował lukaskolista 11.09.2016, 20:40:45 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 07:04 |