![]() |
![]() |
![]()
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: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
No to już wiem, co to jest strategia. Dzięki. Rzeczywiście w mej aplikacji jest strategia, niemniej, jak już się wcześniej zgodziliśmy, pytanie raczej dotyczy dostępu poszczególnych klas klienckich do wspólnej logiki.
Zrobiłem to na zasadzie użycia Trait przez każdą z klas klienckich, ale nie wiem, jakie to niesie ze sobą skutki dla TDD, bo nie mam doświadczenia. Wybrałem Trait, gdyż chciałem sobie zagadnienie Trait poćwiczyć. Wniosek z dyskusji, że co do dostępu do tej logiki, to jest kilka równorzędnych dróg, chyba, że "w praniu" wynikną jakieś zalety jednej z nich. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 21:13 |