Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afKirsten Olesen Redigeret for ca. et år siden
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 * *
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.