Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”

Liknende presentasjoner


Presentasjon om: "Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”"— Utskrift av presentasjonen:

1 Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”

2 Kilder til patterns Alle med kredibilitet/legimitet GRASP (9 patterns) GoF (23 patterns) Craig Larman ”Applying UML og Patterns”

3 Beskrivelser Patterns må beskrives etter en mal Beskrivelsene inneholder ofte UML Minstekrav (klikk)klikk GoF form (klikk)klikk

4 Arkitektur og mønstre Arkitektur realiseres med mønstre Hvert problem kan ha sitt eget mønster Noen mønstre brukes mange steder i en og samme arkitektur Andre mønstre brukes kanskje bare en gang Bruk av mønstre gir enklere vedlikehold Mønsteret gjør det lett å kjenne seg igjen

5 System og subsystem Et system kan bestå av flere subsystemer Hvert subsystem har egen arkitektur og mønstre

6 Mekanismer Mekanismer er mønstre for samarbeid mellom klasser MVC har for eksempel en trelags mekanisme MVC kan vises i et samarbeidsdiagram med tre objekter:

7 Andre lagdelte design Forretningssystemer er 3-lags eller n-lags Lagene kan være fordelt på ulike noder Et system er for stort til å kalles en mekanisme

8 Rammeverk Rammeverk er betydelig større enn mekanismer Rammeverk er samarbeid mellom pakkersamarbeid Rammeverk har callbackteknologi Klassebiblioteker lar applikasjonen bruke instanser Rammeverk bruker i tillegg applikasjonens instanser

9 Applikasjonens instanser Figuren viser bruk av applikasjonens instanser i to av rammeverkets mekanismer

10 GRASP General Responsibility Assignment Software Patterns GRASP er prinsipper for god OO design GRASP beskriver i den forbindelsen 9 mønstre GRASP gir innsikt i klassisk design

11 GRASP og high cohesion High cohesion betyr høy sammenheng Uttrykket brukes om en klasses ansvar Klassens operasjoner skal dekke ansvar med høy grad av sammenheng Dette gir objekter med enkle tilstander og enkel api Enkle tilstander og enkel api gir lav risiko

12 GRASP General Responsibility Assignment SP GRASP er et hjelpemiddel for å lære om OD GRASP er retningslinjer for å fordele og tildele ansvar mellom klasser GRASP fører til sunne, enkle systemer med lav teknologisk risiko

13 High Cohesion Metoder med en oppgave Objekter med få og enkle tilstander Klasser med høy konsentrasjon om ett ansvarsområde Applikasjonslag med konsentrasjon om ett område Bidrar til enkel API Høy grad av abstraksjon og enkel gjenbruk Bidrar til lav kobling

14 Low coupling Kobling vises som assosiasjoner mellom klasser Lav kobling vises som få assosiasjoner

15 Controller og indirection Controller oversetter brukerimpulser til systemoperasjoner Indirection unngår direkte kobling mellom behov og tilbyder. Se JDBCtrainer java[13] Se http://oo.hive.no/test/evalancheclient.jarhttp://oo.hive.no/test/evalancheclient.jar

16 Creator Gir råd om hvem som kan lage instanser Er i slekt med LoD (Law of Demeter) A kan konstruere B dersom A aggregerer, inneholder eller bruker instanser av B A kan konstruere B dersom A har nødvendig informasjon for konstruksjonen av B

17 Law of Demeter En metode skal ha begrenset kunnskap om en objektmodell Et objekts metode kan sende meldinger til seg selv Et objekts metode kan sende meldinger til sine parametre Et objekts metode kan sende meldinger til objekter det selv instansierer

18 Meldinger fra et objekt Et objekt kan sende meldinger til seg selv Et objekt kan sende meldinger til sine parametre Et objekt kan sende meldinger til objekter det selv instansierer Et objekt kan sende meldinger til sine egne komponentobjekter

19 Praktiske følger av LoD Et objekt kan instansiere assosierte objekter i private metoder Et objekt kan sende meldinger til andre objekter i private metoder ”A public method M of Class C shold invoke only its own public and private methods, and those of its superclasses” Annen praksis øker den teknologiske risikoen

20 Praktisk problem og LoD Snakk bare med de nærmeste

21 Praktisk design med LoD La en venn ordne problemet

22 Generelt kart over LoD Klassen Ansvar har bare noen få nære Venn-er

23 Information Expert Tildeling av ansvar til den som har den relevante informasjonen Hvem tar ansvaret for å oppdage vinnermønsteret?

24 Praktisk bruk av Information Expert Spillebrett samler inn kunnskap fra sine ”venner” og tar ansvaret Salg samler inn kunnskap fra sine venner for å rapportere endelig pris

25 Layers, 3-tier GRASP Forretningssystemer er lagdelte

26 Layers, n-tier Systemets størrelse krever av og til flere lag Klikk for detaljerKlikk

27 Praktisk lagdeling Figuren viser en lagdeling av et kinosystem


Laste ned ppt "Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”"

Liknende presentasjoner


Annonser fra Google