Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.

Lignende præsentationer


Præsentationer af emnet: " Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java."— Præsentationens transcript:

1  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java

2  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.6 Abstrakte klasser  Abstrakte klasser kan man angive vha. en indskrænkning (constraint): shape {abstract}

7  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.9 Find primære objekter Kunde Bog Kasseapparat Boghandel Indkøbskurv

10  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.10 Forsimpling KundeBog Kasseapparat Boghandel Indkøbskurv

11  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.11 Relationer KundeBog Boghandel Indkøbskurv Nedarvning? Associering? Aggregering?

12  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.15 Specialisering KundeBog Boghandel Indkøbskurv * 1 1 1 1 1 * betjener handler bærer TilbudsBog

16  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.16 Implementation af relationer  Nedarvning/specialisering er direkte understøttet i objektorienterede sprog: Bog TilbudsBog class Book { … } class TilbudsBook extends book { … }

17  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.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  Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.20 Øvelse  Hvordan vil du implementere denne her?  Hvordan vil du sikre konsistens? AB * *


Download ppt " Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java."

Lignende præsentationer


Annoncer fra Google