05. januar 2014 - 13:11Der er
7 kommentarer og 1 løsning
Design spørgsmål: Mange små klasse eller een stor?
Hejsa
Jeg sidder og laver mig en lille bysamfundssimulator, og er kommet lidt i tvivl om, hvad der giver mest mening/er mest overskueligt og vedligeholdbart.
Jeg har en klasse Job som indeholder de jobs folk kan have og arbejdsfunktionen (.Work()). Så langt så godt.
Men når de forskellige job ikke skal arbejde på samme måde(f.eks. fælde træer/lave brædder/bygge et hus) så skal jeg jo bruge forskellige funktioner til hvert job. Til hvert job hører også et værktøj(Tool) og et materiale(Materials), som de andre job ikke (nødvendigvis) bruger.
Jeg har pt. lavet fire andre job-klasser, hvor hver klasser stort set ens, bortset fra Work() og hvilket Tool og Materials de bruger(og et par andre småting). Men jeg synes det kommer til at virke temmeligt uoverskueligt, hvis(når) der er 30+ forskellige jobs. Og at lave en hel klasse bare for en eller to funktioner virker også som overkill...
Jeg har så overvejet at samle det hele i een klasse, men så er jeg jo nødt til at filtrere på hvem der må hvad(og hvordan gør jeg det bedst?). Og mængden af koden bliver ikke mindre, ligesom overskueligheden også er lav her. :-/
Din abstrakte klasse vil så være en definition af hvad et job er. Den skal selvfølgelig have en abstract Work() metode.
Da alle specialiseringer nedarver fra Job kan du nøjes med at håndtere Job ude fra. Du kan f.eks. have en liste af Job og kalde Work på dem alle uden at vide hvilken specialisering det er.
Sub klasserne kender ikke noget til hinanden og det vil derfor være nemmere at vedligeholde, da du ikke skal bekymre dig om de andre job typer når du implementerer/retter en.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.