Laste ned presentasjonen
1
En kort innføring i Design Patterns
Kilde: Craig Larman: Applying UML and Patterns Bendik Bygstad
2
Patterns (mønstre) Stammer fra arkitekturteori
Christopher Alexander (1977): A Pattern Language En standard løsning på et standard problem – men på en slik måte at hver enkelt anvendelse blir ulik. Bendik Bygstad
3
Patterns Det er kjente måter å løse tilbakevendende problem på. De beskrives gjerne som Problem-Løsningspar og har kjent under bestemte navn. De beskriver fundamentale prinsipper for objektdesign og tildeling av ansvar, uttrykt som mønstre. Bendik Bygstad
4
Patterns Patterns gjør det mulig å samle og beskrive gode og velprøvde måter å designe OO-systemer på. Gjør det mulig for eksperter å kommunisere effektivt om OO-designproblemer. Diskusjonen foregår på et mer abstrakt / overordnet plan. Bendik Bygstad
5
Patterns - syntaks Navn Kontekst Problem Løsning (kjerne)
Forhold til andre patterns - alle kan lage/publisere patterns…. Bendik Bygstad
6
GRASP patterns General Responsibility Assignment Software Patterns
High Cohesion (Høy Sammenheng) Low Coupling (Lav Kobling) Information Expert (Informasjonsekspert) Creator (Skaper) Controller Bendik Bygstad
7
To andre patterns Layers (Lagdeling) Fasade Bendik Bygstad
8
Kohesjon og kobling Grunnleggende prinsipper i OO utvikling for å håndtere kompleksitet: Høyest mulig grad av kohesjon Lavest mulig grad av kobling Bendik Bygstad
9
Informasjonsekspert og Creator
Informasjonsekspert: Tildeling av ansvar Tildel ansvar til informasjonseksperten – klassen som har den nødvendige informasjonen for å oppfylle ansvaret Creator: Opprette instanser av klasser A oppretter B dersom A aggregerer, inneholder eller bruker B-objekter, eller hvis A inneholder informasjon som er nødvendig for å opprette B. Bendik Bygstad
10
Kontroller Mottar innkommende hendelser
Formidler mellom GUI-lag og domenelag Viktig i arkitekturen: Muliggjør flere typer grensesnitt uten for mye ombygging Typer: Use Case controller og system-kontroller Bendik Bygstad
11
Fasade Inngang til pakke (av flere klasser)
Samme rolle som kontroller, inne i pakken Innkapsler pakken Bendik Bygstad
12
Lagdeling Tre lag: Presentasjon – Domene – Lagring
Seks lag (Layers-pattern’et): Presentasjon (GUI) Applikasjon (sesjoner, kontrollere) Domene (domeneklasser, fasader) Forretnings-infrastruktur (f.eks valuta-konvertering) Tekniske tjenester (persistens, sikkerhet) Fundament (Databaser, filer) Avhengigheter: Nedover i lagene (ikke omvendt) Bendik Bygstad
13
Lagdeling Presentasjon Applikasjon Domene Forr.infrastr. Tekniske
Tjenester Fundament GUI 1 GUI 2 Kontroller Faktura Kunde Vare Valutakonv. Les/skriv DB 1 DB 2 Bendik Bygstad
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.