![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 135 Dołączył: 18.11.2010 Skąd: Wschowa Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam pytanie projektowe. Tworzę system generujący umowy. Posiadam w nim klasę Worker zawierającą informacje o pracowniku. Z tym, że do jednej umowy potrzebuję 10 różnych informacji o pracowniku, a do innej umowy potrzebuję jedynie 4 właściwości(takich przypadków może być więcej - do rachunku potrzebuję jedynie imię i nazwisko). Stąd moje pytanie: Powinienem utworzyć klasę Worker zawierającą 4 właściwości, a potem rozszerzać ją do WorkerExtended zawierającej 10 właściwości? Może powinienem utworzyć abstrakcyjną klasę Worker oraz dwie dziedziczące po niej? Będę bardzo wdzięczny za podpowiedź. Dzięki. Ten post edytował tolomei 7.06.2012, 22:52:00 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
jesli jedna umowa wynika z drugiej (jest jej rozszerzoną wersją) to powinienes zrobic jedną z 4 ma wlasciwosciami a pozniej z niej odziedziczyc i w dziedziczacej dodac pozostale szesc.
jezeli sa to rozne umowy to raczej klase abstrakcyjną i w nia wrzucic te 4 pola. ewentualnie niech kazda umowa posiada w sobie liste swoich pól, i tworz je poprzez factory method, zamiast robic osobną klase dla kazdej umowy. class umowa{ private $fields; public function addFields($field) ..... itd } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 11:45 |