Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdMerel Kuiper Laatst gewijzigd meer dan 10 jaar geleden
1
OOS Object geOrienteerd Software-ontwerp - 2
Generalisatie Compositie Gedrag Hoe ontwerpen?
2
Generalisatie
3
Generalisatie voorbeeld onvoorwaardelijk overerven van: eigenschappen
Klant Zakelijke Klant Prive Klant onvoorwaardelijk overerven van: eigenschappen gedrag constraints
4
Generalisatie voordelen
gevalsonderscheid duplicatie van code onderhoudbaarheid betere typecontrole maar er zijn ook nadelen …
5
Generalisatie versus Specialisatie
6
Type is bevroren Exemplaar Aanwezig Uitgeleend Beschikbaar
leenUit(Lid) komtTerug() legApart() Aanwezig Uitgeleend Beschikbaar
7
State pattern Toestand Exemplaar Aanwezig Uitgeleend Beschikbaar 1
leenUit(Lid) komtTerug() legApart() Aanwezig Uitgeleend Beschikbaar 1 state
8
Compositie
9
Compositie bij 1 parent verantwoordelijkheid life-time dependency
Logical Drive letter : Char Root bij 1 parent verantwoordelijkheid life-time dependency
10
0..* Container Onderdeel public class Container {
private ArrayList onderdelen; public Container() { onderdelen = new ArrayList(); } public void addOnderdeel(...) onderdelen.add( new Onderdeel(...) ); public class Onderdeel { Onderdeel(...) { }
11
1 LogicalDrive Root public class LogicalDrive {
private char driveletter private Root root; public LogicalDrive(char letter) { driveletter = letter root = new Root(); } public class Root extends Directory { Root() { super(); }
12
Aggregatie Folder name : Text File 0..* compositie Folder name : Text File 0..* aggregatie Folder name : Text File 0..* 1 associatie Vervang elke aggregatie, die geen compositie is, door een associatie met multipliciteit 1 (of soms zelfs 0..1)
13
Navigatie 0..* 0..* Land Plaats Weg Route 1 2 0..* 1 ◄ ligt in
naam: Text Land naam: Text pos: Position Plaats afstand: Real Weg /afstand: Real Route 0..* 0..* 1 2 0..* 1 ◄ ligt in ◄ uiteinden ◄ bestaat uit
14
Compositie-procedure
life-time dependency extra compositieklassen toevoeg-, verwijder- en zoekmethoden afgeschermde constructor
15
Toe te voegen compositie
Aarde naam: Text Land naam: Text Land naam: Text pos: Position Plaats naam: Text pos: Position Plaats afstand: Real Weg afstand: Real Weg /afstand: Real Route /afstand: Real Route 0..* 0..* 1 2 0..* ◄ ligt in ◄ uiteinden ◄ bestaat uit
16
Gedrag
17
Standaardgedrag Constructor(en) Inspectie Wijzigiging
18
Constructor Niet-optionele eigenschappen: Via parameter Defaultwaarde
Interne berekening
19
Inspectiemethoden Getters Boolean-eigenschappen Zoekmethoden
20
Wijziging Read-only eigenschappen Setters Add, Remove
21
Hoe ontwerpen?
22
Ontwerpproces OMT – heuristieken CRC – cards Eerst toestand dan gedrag
Inventariseer alle soorten van informatie Controleer of alle informatie in CD voorkomt Standaardgedrag op basis van toestand Verfijnen van gedrag
23
Naamgeving Klassenaam Objectnaam Meervoudige eigenschap meervoud
Rolnaam Associatienaam
24
Deze week Toepassen van compositie. Navigatierichting toevoegen.
Standaardgedrag toevoegen.
25
Volgende week Scenario’s Sequentiediagram
Coderen aan de hand van het klassendiagram
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.