27.07.2013 Views

Carletti A/S 2012 - Kalabakas.dk

Carletti A/S 2012 - Kalabakas.dk

Carletti A/S 2012 - Kalabakas.dk

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!