Videregående programmering i Java

Dag 5 - Model-View-Controller-arkitekturen

Model-View-Controller-arkitekturen (MVC)

Strategier til databaseadgang

Fremlæggelse af design/status for projekter

Evt.: Repetition: Objektorienteret design, Ansvarsområder, kobling og indkapsling (programmere i pakker)

Læsning: VP 19

Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Hønsespil

Kim L. J.

Model-View-Controller

Programmer med en brugergrænseflade kan inddeles i tre dele:

1. Forretningslogik: Data og de bagvedliggende beregninger (model)

En bankkonto har navn på ejer, kontonummer, kort-ID, saldo, bevægelser, etc.

Saldo kan ikke ændres direkte, men med handlingerne overførsel, udbetaling og indbetaling

2. Visning af informationer til brugeren (præsentation)

Bankkonti præsenteres meget forskelligt.

I en pengeautomat vises ingen personlige oplysninger overhovedet

I et netbank-system kan saldo og bevægelser ses (det kunne være en webløsning i HTML)

3. Mulighederne for at ændre i data gennem handlinger (kontrollør)

I en pengeautomat kan man kun hæve penge

I et netbank-system kan brugeren måske lave visse former for overførsel fra sin egen konto

Ved skranken kan medarbejderen derudover foretage ind- og udbetalinger

Model-View-Controller

Muligheder for opdatering af præsentation:

A - Præsentationer undersøger modellen

B - Kontroldel underretter præsentationer

C - Modellen underretter præsentationer

Diskussion:

Genbrug af kode?

Flere præsentationer af samme data?

Hvornår skal præsentation opdatere skærm?

C - Model underretter præsentation

C - Model underretter præsentation

Eksempel:

Mikala

Mikala

Persistensproblemet
Strategier til databaseadgang

Rigtig mange muligheder, f.eks.:

JDBC-kode blandet sammen med resten af koden

JDBC-kode i dedikerede klasser

JDBC RowSet - ResultSet der også opdaterer databasen

CachedRowSet - kan eksistere løsrevet fra databasen

WebRowSet giver XML, der kan transformeres, f.eks. med

XSLT (XSL style sheet)

Javas XML-behandling

EJB - Enterprise JavaBeans - serverobjekt pr. række

JDO - Java Data Objects - objekt pr. række

Proprietære løsninger

Giver mulighed for grafiske databasekomponenter

Oracle JDeveloper ADF - Application Developer Framework

Borland JBuilder: DataModule

IBM WebSphere Studio

Bedste løsning? Afhænger af omstændighederne!

Hvor omfattende databasedelen af ens applikation er

Hvor meget man forventer den senere skal vedligeholdes.

Videregående programmering i Java

Præsentatoner fra kurset

2004-08-30T12:23:21