Programowanie obiektowe - rozłożenie elementów

Programowanie obiektowe - rozłożenie elementów
AN
  • Rejestracja:ponad 11 lat
  • Ostatnio:prawie 10 lat
  • Postów:78
0

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?

fasadin
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

zalezy co bedziesz dalej robil w projekcie.

Oba rozwiazania maja swoje plusy i minusy

1

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

AN
  • Rejestracja:ponad 11 lat
  • Ostatnio:prawie 10 lat
  • Postów:78
0

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 ?

KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

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?


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
niezdecydowany
niezdecydowany
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 9 lat
  • Lokalizacja:Bieszczady
0

Jedno miasto może mieć wielu mieszkańców, zwykłe jeden do wielu. Może jakaś mapka

Kopiuj
<PESEL['jakiś identyfikator'], Miasto>

, Samo miasto może w tedy mieć u siebie subset'a tej mapy, np:

Kopiuj
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.


"Perhaps surprisingly, concurrent programming isn’t so much about threads or
locks, any more than civil engineering is about rivets and I-beams."
edytowany 3x, ostatnio: niezdecydowany

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.