![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Żałóżmy że : przestrzeń nazw a.b.c ma klase D i interfejs E. Obiekt klasy D sprawdza czy przekazany do niego obiekt innej klasy implementuje interfejs D i wykonuje pewne czynności. Potrzbna mi teraz taka sama funkcjonalność w klasie X, która musi wykonać identyczną czynność. Zastanawia mnie czy powinienem w tej sytuacji powielić tą funkcjonalność czy skorzystać z istniejącej wedle zasady DRY. Dokładnie to chodzi o przekazywanie obiektu kontekstowego w parametrze konstruktora. Pyrz towrzeniu obiektu D sprwadza czy implementuje on odpowiedni interfejs i go przekazuje. To samo musi robić obiekt klasy X. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mógłbyś opisać (najlepiej podać kod) jaki jest ostateczny cel tego kodu. Bo niestety teraz ciśnie się jedno: nie twórz w ogóle M::stworzObiekt(). Chciałbym poznać cały mechanizm jaki chcesz zaimplementować - może w założeniach powinno się coś poprawić.
Generalnie co do reguły DRY stosuję taką regułę: jeżeli ilość powielonego kodu jest względnie niewielka, a jego niepowtarzanie przystworzyłoby jedynie więcej problemów niż pożytku oraz co chyba najważniejsze, powielenie kodu z przyszłościowego punktu widzenia nie jest problemem - nie warto na siłę stosować się do tej reguły. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.08.2025 - 23:28 |