De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

OOS Object geOrienteerd Software-ontwerp - 2 Generalisatie Compositie Gedrag Hoe ontwerpen?

Verwante presentaties


Presentatie over: "OOS Object geOrienteerd Software-ontwerp - 2 Generalisatie Compositie Gedrag Hoe ontwerpen?"— Transcript van de presentatie:

1 OOS Object geOrienteerd Software-ontwerp - 2 Generalisatie Compositie Gedrag Hoe ontwerpen?

2 Generalisatie

3 voorbeeld Klant Zakelijke KlantPrive 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 leenUit(Lid) komtTerug() legApart() Aanwezig Exemplaar Uitgeleend Exemplaar Beschikbaar Exemplaar

7 State pattern Toestand Exemplaar leenUit(Lid) komtTerug() legApart() AanwezigUitgeleendBeschikbaar Exemplaar leenUit(Lid) komtTerug() legApart() 1 state

8 Compositie

9 bij 1 parent verantwoordelijkheid life-time dependency Logical Drive letter : Char Root

10 Onderdeel Container 0..* public class Container { private ArrayList onderdelen; public Container() { onderdelen = new ArrayList(); } public void addOnderdeel(...) { onderdelen.add( new Onderdeel(...) ); } public class Onderdeel { Onderdeel(...) { }

11 Root LogicalDrive 1 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 Folder name : Text File 0..* aggregatie Aggregatie Vervang elke aggregatie, die geen compositie is, door een associatie met multipliciteit 1 (of soms zelfs 0..1) Folder name : Text File 0..* compositie Folder name : Text File 0..* 1 associatie

13 Navigatie 2 0..* afstand: Real Weg ◄ uiteinden /afstand: Real Route 0..* naam: Text pos: Position Plaats ◄ bestaat uit naam: Text Land 0..* ◄ ligt in 1 1

14 Compositie-procedure 1. life-time dependency 2. extra compositieklassen 3. toevoeg-, verwijder- en zoekmethoden 4. afgeschermde constructor

15 0..* 1 Toe te voegen compositie 2 0..* afstand: Real Weg ◄ uiteinden /afstand: Real Route naam: Text pos: Position Plaats ◄ bestaat uit naam: Text Land ◄ ligt in afstand: Real Weg /afstand: Real Route naam: Text pos: Position PlaatsAarde naam: Text Land

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


Download ppt "OOS Object geOrienteerd Software-ontwerp - 2 Generalisatie Compositie Gedrag Hoe ontwerpen?"

Verwante presentaties


Ads door Google