 Jens Bennedsen 2002Objektorienteret systemudvikling Persistens.

Slides:



Advertisements
Lignende præsentationer
Mapning af 1 til mange forbindelser
Advertisements

Mapning af klasser til relationer
07 – Kort om OO Introduktion.
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
09 – Arv og polymorfi i java
Mapning af 1 til mange forbindelser
Objektorienteret programmering
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
Eksempel på realisering af domænemodel
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
Objekter og klasser Rasmus D. Lehrmann DM
Repetition: Introduktion til OOP med C# og .NET
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Fundamentale sprogbegreber
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Forelæsning 7.1 – repetition
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
Systemudvikling – Fra idé til kode.  Jens Bennedsen 2001Multimedie programmering9.2 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
Introduktion til programmering Repetition - ArrayList.
Klassevariable- og metoder Tilstand og opførsel på klasseniveau.
DAIMIIntroducerende Objektorienteret Programmering1 Polymorfi og nedarvning Motivation for arv og “mange former”
 1999, Henrik B. ChristensenIntroducerende objektorienteret programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2001Multimedie programmering10A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
 Jens Bennedsen, 2003Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
I o p o DAIMI, AU, Marts 1999Introducerende objektorienteret programmering5B.1 Et lille banksystem Modellering ved hjælp af UML.
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur.
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
 Jens Bennedsen 2001Multimedie programmering MVC Et mønster for grænseflader.
 Jens Bennedsen 2001Multimedie programmering13.1 Lingo Objectorienteret Lingo.
 Jens Bennedsen 2002Objektorienteret systemudvikling Modelleringsperspektiver Hvad betyder en klassemodel egentlig?
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2002Objektorienteret systemudvikling1.1 Objektorienteret design Persistens - introduktion.
Klassevariable- og metoder Funktionalitet på klasseniveau.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering1 Et lille banksystem Modellering beskrevet ved et UML klassediagram.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
 Jens Bennedsen 2002Objektorienteret systemudvikling Gode designløsninger GOF designmønstre.
 Jens Bennedsen, 2003, revideret af EE Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
Objektinteraktion i GUI’er MVC og Observer.  Michael E. Caspersen, 2003Introducerende objektorienteret programmeringmvc.2 AWT framework Listeners og.
Hvad er en inkrementel og iterativ process?
Designmønstre Baggrund og eksempler Michael E. Caspersen
Parametrisering En kort introduktion.
Præsentationens transcript:

 Jens Bennedsen 2002Objektorienteret systemudvikling Persistens

 Jens Bennedsen 2002Objektorienteret systemudvikling Klassemodel vs. relationel model Klasse => tabel –Simple attributter => felter –Reference = associering Associering => fremmednøgle Hierarkier –En tabel pr klasse –En tabel pr. konkret klasse –En tabel pr hierarki ID –Ingen semantik!!!

 Jens Bennedsen 2002Objektorienteret systemudvikling Template Method Intent At definere grundstrukturen i en algoritme, men udskyde den konkrete fastlæggelse af enkelte trin til subklasser. Subklasser kan redefinere elementer i en algoritme, men grundstrukturen ligger fast. Motivation

 Jens Bennedsen 2002Objektorienteret systemudvikling Template Method (2) Class Application { public void OpenDocument(String name) { if ( !CanOpenDocument(name) ) { // cannot handle this document return; } Document doc = DoCreateDocument(); if ( doc ) { _docs.AddDocument(doc); AboutToOpenDocument(doc); doc.Open(); doc.DoRead(); } private Vector _docs; }

 Jens Bennedsen 2002Objektorienteret systemudvikling Template Method (3) class abstract Shape { public Shape(int x, int y) {…} public void move(int dx, int dy) { hide(); _x+= dx; _y+= dy; show(); } public abstract void show(); public abstract void hide(); protected int _x; protected int _y; }; Vores ”gamle kending” ’move’ fra figurhierarkiet er en Template Method:

 Jens Bennedsen 2002Objektorienteret systemudvikling Template Method (4) Structure

 Jens Bennedsen 2002Objektorienteret systemudvikling Ur is presented as depends on Clock Hour: 11 Min: 38 Sek: 25 MSek:..

 Jens Bennedsen 2002Objektorienteret systemudvikling Regneark is presented as depends on Celler D7: 25 D8: 10 D9: 65 Lagkage- diagram

 Jens Bennedsen 2002Objektorienteret systemudvikling CAD-system is presented as depends on House DoorA Roof1 Window3 Browser...

 Jens Bennedsen 2002Objektorienteret systemudvikling CASE-værktøj class Account { public void deposit(...) public void withdraw(...) } class ChequeAccount extends Account {... }... is presented as AST depends on Browser...

 Jens Bennedsen 2002Objektorienteret systemudvikling Generelt: Subject-Observers Subject Observer 1Observer 2Observer n... depends on is presented as

 Jens Bennedsen 2002Objektorienteret systemudvikling Problem Ændring af den interne tilstand i en komponent kan bevirke inkonsistens i andre eller på tværs af komponenter. Hvordan kan vi reetablere konsistens således at: –informationsudbyderen (subject) ikke afhænger af forbrugerne (observers) –forbrugerne (observers) ikke skal være kendt på forhånd

 Jens Bennedsen 2002Objektorienteret systemudvikling Løsning Implementer en “change propagation mechanism” mellem informationsudbyder (Subject) og forbrugere (Observers). Subject vedligeholder et register over Observers og gør alle Observers opmærksomme på ændringer af tilstand- en. Observer erklærer en (virtuel) update-funktion som kaldes af Subjects “change propagation mechanism”. Konkrete Observers implementerer update-metoden...

 Jens Bennedsen 2002Objektorienteret systemudvikling Løsning, struktur abstrakt (videre-)binding

 Jens Bennedsen 2002Objektorienteret systemudvikling Løsning, dynamik SubjectObserver 1Observer 2 attach(this) setData notify update getData update getData