Witam! Mam pytanie odnośnie programowania obiektowego. Na uczelni mam do zrealizowania projekt- grę. Przy okazji mam zamiar trochę się nauczyć jak dobrze to wszystko rozumieć. Otóż mam klasę "Miasto" i "Cywil" i teraz mam zamiar w mieście utworzyć listę cywili. I oczywiście rozumiem, że wtedy muszę tworzyć funkcje dodawania cywilów w klasie Miasto, bo tam mam listę. Teraz pytanie, czy nie lepiej jest zrobić klasę pośrednią miedzy Cywil a Miasto, posiadającą listę cywili i tam wszystkie funkcje obsługujące tę listę? I potem utworzyć obiekt w klasie Miasto typu zawierającego listę? Proszę o odpowiedź dlaczego tak? I dlaczego tak najlepiej?

- Rejestracja:prawie 14 lat
- Ostatnio:prawie 3 lata
- Postów:4882
zalezy co bedziesz dalej robil w projekcie.
Oba rozwiazania maja swoje plusy i minusy
w realnym świecie "miasto" nie wie kto w nim mieszka, nie ma żadnej listy aktualnie przebywających tam osób
jest jedynie lista zameldowanych osób którą ma jakiś tam urząd
za to gdybyś spytał cywila w jakim mieście żyje to nie miałby problemu z udzieleniem odpowiedzi
i'm just saying
próbuj jak najlepiej odzwierciedlić rzeczywistość, jednak rób to tak żeby program nie był zbyt skomplikowany
- Rejestracja:ponad 11 lat
- Ostatnio:prawie 10 lat
- Postów:78
tzn, w miesicie oprócz cywili będą jeszcze źródła mocy, superbohatorowie, i wszystko będzie na listach...więc nie wiem czy upychać wszystko razem czy to porozdzielać, bo to znaczy, że do dodawania źródeł mocy będę musiał mieć funkcje i superbohaterów, a także funkcje usuwania, update'u....
jakieś dalsze sugestie ?
- Rejestracja:prawie 12 lat
- Ostatnio:prawie 5 lat
- Lokalizacja:Warszawa
- Postów:1683
miasto mogłoby spokojnie przechowywać coś, ale Set<Dweller> dwellers;
lecz z drugiej strony musiałbyś więcej napisać. jak to coś bardziej skomplikowanego to może sobie zrób do teog jakąś klase opakowanie albo InMemoryDao?

- Rejestracja:ponad 12 lat
- Ostatnio:ponad 9 lat
- Lokalizacja:Bieszczady
Jedno miasto może mieć wielu mieszkańców, zwykłe jeden do wielu. Może jakaś mapka
<PESEL['jakiś identyfikator'], Miasto>
, Samo miasto może w tedy mieć u siebie subset'a tej mapy, np:
Map<String, List<String>> jakies_wioska_pod_oławą=
Maps.filterEntries(GłównaMapaZLudźmi, [i tu jakiś tam warunek, np: p->p.equals("jakas_wioska_pod_oławą")]);
Masz w tedy "closed for modification open for extension", bo możesz robić kolejne miasta.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.