Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.

Lignende præsentationer


Præsentationer af emnet: " Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode."— Præsentationens transcript:

1  Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode

2  Jens Bennedsen 2002Objektorienteret systemudvikling Perspektiver på klassemodellen Begrebslig –Beskriver folks opfattelse af verden –Uafhængigt af software Specifikation –Interfaces af klasser (typeer) Implementation –Interne egenskaber ved en klasse I design I programmering I analyse

3  Jens Bennedsen 2002Objektorienteret systemudvikling Operation ( public) Person (Design model) klasse Attribut ( privat)

4  Jens Bennedsen 2002Objektorienteret systemudvikling Kode /** * Denne klasse er en realisering af Design * klassen Person, hvor alderen beregnes ud * fra den dato hvor personen er født * @author Jens Bennedsen * @version 24. oktober 2000 */ public class Person {/** * returnerer personens navn */ public String getNavn() { return navn; } /** * ændrer personens navn til navn */ public void setNavn(String navn) { this.navn=navn; } /** * returnerer personens adresse */ public String getAdresse() { return adresse; } /** * ændrer personens adresse til adresse */ public void setAdresse(String adresse) { this.adresse = adresse; } /** * returnerer personens alder */ public int getAlder() { return alder; } /** * lægger et år til personens alder (Skal kaldes når personen har fødselsdag for at hans alder er korrekt) */ public void foedselsdag() { alder = alder + 1; } private String navn = ""; private String adresse = ""; private int alder = 0; }

5  Jens Bennedsen 2002Objektorienteret systemudvikling Eller… /** * Person repræsenterer en simpel person i et bibliotekssystem * @author Jens Bennedsen * @version 20. marts 2002 */ public interface Person { public String getNavn(); public void setNavn(String navn); public String getAdresse(); public void setAdresse(String adresse); public int getAlder(); }

6  Jens Bennedsen 2002Objektorienteret systemudvikling Associering 0..1 Kardinalitet (0 eller en låner knyttet til en bog Associering

7  Jens Bennedsen 2002Objektorienteret systemudvikling BogEksemplar (implementation) /** * Denne klasse repræsenterer et eksemplar af en bog i et bibliotek * * @author Jens Bennedsen * @version 24. oktober 2000 */ public class BogEksemplar {public BogEksemplar(…) { låner=null;… } … public Låner getLåner() { return låner; } public void setLåner(Låner låner) { this.låner = låner; } … private Låner låner; } Retningen på associationen er valgt udfra use cases/interaktion

8  Jens Bennedsen 2002Objektorienteret systemudvikling Accociering 1..1 Låner navn : String adresse : String getAlder() : int getNavn() : String setNavn(String) getAdresse() : String setAdresse(String) BogEksemplar antalUdlån:() : int 0..1 Bog titel : String ISBN-nr : String 11 Flere ens bog eksemplarer - udfaktorisering Tvungen deltagelse

9  Jens Bennedsen 2002Objektorienteret systemudvikling Bog - BogEksemplar Associeringen tilføjes som en attribut –aflæses af getBog() –opdateres af setBog(...) Alle attributter kan aflæses ( get… ) og opdateres ( set… ) Associeringen initialiseres når et BogEksemplar objekt skabes –constructor Bog titel : String ISBN-nr : String Bog(String, String) getTitel() : String setTitel(String) getISBN_Nr() : String setISBN_Nr(String) BogEksemplar antalUdlån : int låner : Låner bog : Bog BogEksemplar(Bog) antalUdlån:() : int getLåner() : Låner setLåner(Låner) setBog(Bog) getBog() : Bog 1

10  Jens Bennedsen 2002Objektorienteret systemudvikling Kode /** * Denne klasse repræsenterer et eksemplar af en bog i et bibliotek * * @author Jens Bennedsen * @version 24. oktober 2000 */ public class BogEksemplar { public BogEksemplar(Bog bog) { this.bog = bog; } … public Låner getLåner() { return låner; } public void setLåner(Låner låner) { this.låner = låner; … } public Bog getBog() { return bog; } public void setBog(Bog bog) { if (bog!=null) this.bog = bog; } private Låner låner=null; private Bog bog; }

11  Jens Bennedsen 2002Objektorienteret systemudvikling Registrering fra låner til udlånsemner LånerImpl navn : String adresse : String getAlder() : int getNavn() : String setNavn(String) getAdresse() : String setAdresse(String) 0..*0..1 BogEksemplar antalUdlån()

12  Jens Bennedsen 2002Objektorienteret systemudvikling Design Information om hvilke tilknyttede BogEksemplarer der er –List (eller anden Collection)List operationer til at tilføje og fjerne BogEksemplar objekter –addEksemplar –removeEksemplar BogEksemplar LånerImpl navn : String adresse : String eksemplarer : List getAlder() : int getNavn() : String setNavn(String) getAdresse() : String setAdresse(String) addEksemplar(BogEksemplar) removeEksemplar(BogEksemplar) 0..* getEksemplarer(): List

13  Jens Bennedsen 2002Objektorienteret systemudvikling Associering (implementation) import java.util.*; public class LånerImpl implements Låner {public LånerImpl(..) {.. eksemplarer = new ArrayList(); }... public void addEksemplar(BogEksemplar eksemplar) { eksemplarer.add(eksemplar); } public void removeEksemplar(BogEksemplar eksemplar) { eksemplarer.remove(eksemplar); } public List getEksemplarer() { return eksemplarer; }... private Collection eksemplarer; }


Download ppt " Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode."

Lignende præsentationer


Annoncer fra Google