Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.

Lignende præsentationer


Præsentationer af emnet: "DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java."— Præsentationens transcript:

1 DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java

2 DAIMI, AUIntroducerende objektorienteret programmering11A.2 UML  Unified Modeling Language er ved at være en industristandard til at give overblik over objekt- orienterede systemer i en kompakt, grafisk, form.  Vi vil kun bruge en lille delmængde af UML, primært klassediagrammer.

3 DAIMI, AUIntroducerende objektorienteret programmering11A.3 Klasser  En klasse beskrives ved en kasse, delt i tre lag triangle b: int c: Color draw() move() erase() Navn Attributter/variable Metoder (overblik)

4 DAIMI, AUIntroducerende objektorienteret programmering11A.4 Klasser  Det primære formål med et UML diagram er overblik over de væsentlige aspekter af ens model—ikke at beskrivelsen er komplet.  Derfor viser man ofte overhovedet ikke variable og metoder: triangle

5 DAIMI, AUIntroducerende objektorienteret programmering11A.5 Oversættelse til Java  Oversættelsen er simpel i et objekt-orienteret sprog: triangle b: int c: Color draw() move() erase() class triangle … { int b; Color c; … public void draw() { … } … }

6 DAIMI, AUIntroducerende objektorienteret programmering11A.6 Abstrakte klasser  Abstrakte klasser kan man angive vha. en indskrænkning (constraint): shape {abstract}

7 DAIMI, AUIntroducerende objektorienteret programmering11A.7 Relationer  Vi vil kun beskæftige os med 2 (3) relationer  Associering~ “tilknytning / afhængighed”  Aggregering~ “indhold (permanent)”  (Komposition~ “(uadskillelig) del-helhed”)  Disse angiver en stigende grad af tilknytning 

8 DAIMI, AUIntroducerende objektorienteret programmering11A.8 Et eksempel  Vi skal lave et systemdesign for elektronisk handel med bøger – en virtuel boghandel ala amazon.com.  Problembeskrivelse: En kunde præsenteres for de bøger, som boghandlen ligger inde med. Kunden udvælger en bog og lægger den i sin indkøbskurv. Dette gentages til kunden ikke ønsker flere bøger. Derefter betaler kunden for bøgerne i kurven ved kasseapparatet.

9 DAIMI, AUIntroducerende objektorienteret programmering11A.9 Find primære objekter Kunde Bog Kasseapparat Boghandel Indkøbskurv

10 DAIMI, AUIntroducerende objektorienteret programmering11A.10 Forsimpling KundeBog Kasseapparat Boghandel Indkøbskurv

11 DAIMI, AUIntroducerende objektorienteret programmering11A.11 Relationer KundeBog Boghandel Indkøbskurv Nedarvning? Associering? Aggregering?

12 DAIMI, AUIntroducerende objektorienteret programmering11A.12 Relationer: Én mulighed KundeBog Boghandel Indkøbskurv * 1 1 111 * Associering, 1-1, 1-mange, mange-mange Aggregering, 1-1, 1-mange Komposition, 1-1, 1-mange

13 DAIMI, AUIntroducerende objektorienteret programmering11A.13 Roller KundeBog Boghandel Indkøbskurv * 1 1 111 * betjener handler i bærer Læses f.eks: En kunde handler i en boghandel. En kunde bærer en indkøbskurv. Osv.

14 DAIMI, AUIntroducerende objektorienteret programmering11A.14 Orientering KundeBog Boghandel Indkøbskurv * 1 1 1 1 1 * betjener handler bærer Orientering (navigability) udtaler sig om ansvar og kendskab (og implementation). En kunde ved hun handler i boghandlen, men boghandlen ved ikke nødvendigvis at kunden er der.

15 DAIMI, AUIntroducerende objektorienteret programmering11A.15 Specialisering KundeBog Boghandel Indkøbskurv * 1 1 1 1 1 * betjener handler bærer TilbudsBog

16 DAIMI, AUIntroducerende objektorienteret programmering11A.16 Implementation af relationer  Nedarvning/specialisering er direkte understøttet i objektorienterede sprog: Bog TilbudsBog class Book { … } class TilbudsBook extends book { … }

17 DAIMI, AUIntroducerende objektorienteret programmering11A.17 Implementation af relationer  Associering og aggregering implementeres generelt på samme måde, nemlig ved hjælp af referencer. Orientering angiver, hvilken klasse der ”har” referencen. 1 1 1 1 AB class A { // 1-1 relation til B B bRelation; } class B { // Ingen relation til A }

18 DAIMI, AUIntroducerende objektorienteret programmering11A.18 Implementation af relationer  Tovejs relationer kan implementeres ved at de har referencer til hinanden. Her skal man passe på ved oprettelse, at de faktisk refererer til hinanden. 1 1 1 1 AB class A { // Relation til B B bRelation; } class B { // Relation til A A aRelaion; }

19 DAIMI, AUIntroducerende objektorienteret programmering11A.19 Implementation af relationer  1-mange relationer implementeres oftest ved hjælp af en collection, typisk Vector eller Dictionary. 1 AB class A { // Relation til B collection som kan indeholde B objekter ; } class B { // No relation til A } * * *

20 DAIMI, AUIntroducerende objektorienteret programmering11A.20 Øvelse  Hvordan vil du implementere denne her?  Hvordan vil du sikre konsistens? AB * *


Download ppt "DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java."

Lignende præsentationer


Annoncer fra Google