Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
23. april - <strong>2012</strong> Robert Nogal<br />
24. maj - <strong>2012</strong> <strong>Carletti</strong> Projekt <strong>2012</strong> Emil Thygesen<br />
Mads Pedersen<br />
}<br />
...<br />
I dette system er der benyttet singleton på DAO, Service og SystemDato. De to første klasser er allerede<br />
blevet forklaret hvorfor de er blevet implementeret således.<br />
Grunden til at SystemDato-klassen er implementeret på den måde ligger i at systemet kun skal hente de<br />
nødvendige datoer fra én klasse, så der ikke opstår en uens udvikling i tiden. Hvis der var to, ville det være<br />
muligt at nogle objekter fik deres datoer fra et SystemDato objekt mens andre fik fra en anden. Oven i det<br />
ville de to objekter af SystemDato kunne have to forskellige udgangsdatoer<br />
Strategy<br />
Pointen i strategy-mønstret er at generalisere klasserne hvor der på et eller andet punkt er en central klasse<br />
som alle subklasser nedarver fra. På den måde kan man benytte superklassen som en type definition på fx<br />
en attribut i ens application. På den måde kan der assignes et objekt af en subklasse til attributten som så<br />
ikke skal have skiftet værdi. Dette gør også at det er muligt at udvide systemet nemmere ved blot at lave en<br />
klasse som nedarver fra superklassen. Så længe attributten er defineret til at være af superklassens type, vil<br />
der ikke være noget yderligere problem i det.<br />
Grunden til at dette mønster er taget med i dette afsnit, ligger i implementeringen af Behandlings-,<br />
Toerrings- og Dragerings-klassen. Hele konceptet i strategy-mønstret kan ses her. Når et BehandlingsIndeks<br />
oprettes kræver det nemlig en eller anden form for behandling som en fast del af BehandlingsIndeks<br />
objektet. Hvis man ikke benyttede strategy mønstret kunne man fx have to attributter, en med typen<br />
Dragering, og en med typen Toerring. Så skulle der blot testes for hvilken af de to attributter der ikke var<br />
null for derefter at udføre behandling ud fra det andet. Men hvad hvis man havde ti forskellige<br />
behandlinger? Det ville så inkludere ti forskellige attributter i klassen der benytter en af behandlingerne,<br />
hvilket ikke er effektivt. Derfor er der i systemet implementeret en abstrakt klasse som både Toerring- og<br />
Dragering-klassen nedarver fra. På den måde skal der blot være en attribut i BehandlingsIndeks klassen som<br />
både kan have et konkret objekt værdi af typen Toerring og Dragering. Selv hvis systemet kommer til at<br />
inkludere flere behandlingstyper, er det kun oprettelsen af den nye behandlingstype som klasse der<br />
nedarver fra Behandling som skal implementeres, og intet i andre klasser - som udgangspunkt.<br />
Side 44 af 75