Memento Object Behavioral Design Pattern. Lagre og hente tilstander • Et system inneholder ofte mekanismer som trenger gjenbruk av tilstander • Memento.

Slides:



Advertisements
Liknende presentasjoner
Objektorientert systemutvikling og UML  OOSU er den mest anvendte metoden på både store og små prosjekter  UML er det mest anvendte beskrivelsesspråk.
Advertisements

Del 3 : Patterns (Kap 16 – kap 20, Craig Larman) Arne Maus Inst. for informatikk, UiO.
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
“UNDER THE KNIFE” Et planleggingssystem for operasjonsavdelingen Fylkessykehuset i Molde Prototype for planlegging, logistikk, og kostnads estimering.
Realisering av Software Patterns Software Design Patterns Realisering med kode Refaktorering Gjenkjenning av mønstre.
Mediator i prosjektet easyhtml Mediator. Widgets og signaler  Systemet inneholder mange signalgivere  Mange til mange er erstattet med en til mange.
Objektorientert systemutvikling og UML
Kapittel 6 Data Backup Service. Tradisjonell arkitektur •Mange klienter •En server (evt. et cluster) •Klientene tar backup m jevne mellomrom •Inkrementell.
Lynkursdagene 2011 Webdrive Tilgang til UiO-disker utenfor UiO-nettet Mads Lomholt usit/sas/lipk.
IMT OOSU 28.sept Dagens tema : forts. DESIGN PATTERNS ObjektOrientert Design = Bevissthet i tildeling/fordeling av ansvar til softwareklasser for.
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Beslektede algoritmer. Isolere klient fra algoritme  Klienter trenger av og til helt forskjellige måter å gjøre det samme på  Men klienten selv kan.
Versjon 16 Nye klienter. Fra 10 til 4 ALEPH modulsammenslåing.
Begrenset redigering “Klubbjournalister” For web ansvarlig klubb.
Chain of Responsibility GoF mønster Operasjonelt (behavioral)
Objektorientert programmering Objektorientert systemutvikling
IS-102 Klassedefinisjoner
Android-Programmering Våren Oversikt – PendingIntents Rollen til PendingIntents Vanlig bruk Deling Sending.
Objektorientert utforming In 140 Forelesning Nr 13 Sommerville kap 12 – del 2.
Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Læring og tenkning Systemutvikling er læring Gjensidig respekt og samarbeid Følge en konkret oppskrift Velge blant flere oppskrifter Nå målet uten oppskrift,
Prosjektet transparente lag Composite og tegnende objekter Decorator og gui-kontrollere Factory Method Iterator.
GRASP General Responsibility Assignment SP GRASP er et hjelpemiddel for å lære om OD GRASP er retningslinjer for å fordele og tildele ansvar mellom klasser.
En kort innføring i Design Patterns
GoF GoF er fire systemutviklere, Gang of Four GoF fikk utgitt boken Design Patterns høsten 1994 Boken Design Patterns er en klassiker Design Patterns beskriver.
Forbindelser Diagrammer i UML består av ting med forbindelser
Domeneklasser En applikasjon kan ha domenesvake og domenesterke klasser.
Mediator Mediator i prosjektet easyhtml. Widgets og signaler Systemet inneholder mange signalgivere Mange til mange er erstattet med en til mange Hvert.
Strukturerende elementer i UML
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Apache POI.
Kirsten Ribu HiO Ansvarsdrevet design og bruk av design-mønstre Kirsten Ribu.
Felteksperiment - OU. Eksperiment Test av en teori, dvs. test av noe som foreligger forut for eksperimentet. Eksperimentet blir dermed styrt av teorien.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
Sketcing Interfaces: Toward More Human Interface Design Av James A. Landay & Brad A. Myers.
Design Patterns Iterator & Mediator. Gruppe 8 Presentasjonsgruppe:Resten av gruppen: Marianne AtesAndrè Johansen Tom Vidar LundeHege-Kristin Johansen.
Gruppe 9 - Design Pattern modeling Per I. Jacobsen Synne Nygaard Alfred Skari Anette kjuus Per K. Førrisdal Øystein Rogstad Skule Notø.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
DEKOMPONERING OG MODULARITET ~Gruppe 4~. Gjennomgang Designtyper/kriterier innen dekomponering Dekomponeringsspesifikasjon Strukturert og objektorientert.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
Composite & Decorator Patterns Patterns Composite Spørsmål? Introduksjon Decorator Resymé Gruppe 4 Ivar Bonsaksen Remi Karlsen Jonas Lepsøy Stian Rostad.
Design patterns: State og Strategy
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
Innkapsling av request. Køing, logging, angre Command tilhører gruppen av ”behavioral patterns” Instanser av mønsteret leder til instanser av forespørsler.
Composite GoF Structural Pattern. Alle kjenner Composite Alle som har brukt lister organisert som trær i brukermiljøer, kjenner Composite Pattern.
XML og Composite Pattern Mønstre og bygging av xml-tre.
Aktivitetsdiagrammer
Instruktørkurs for kommuner Ansvar og avtaler (45 min)
KONFIDENSIELT. Distribusjon bare til partnere i henhold til avtalen om taushetsplikt. Microsoft gir ingen uttrykte eller underforståtte garantier. © 2012.
Gruppe 5 består av: – Cecilie Vitting – – Marit S. Asklien -
Fra Mitose til Happy-meal Innføring i “Prototype Patterns” og “Builder Patterns” Gruppe 2 Carl-Erik Herheim Leendert Wienhofen Olav Dæhli Thomas Julsen.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Objektorientert utforming
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
Objektorientert utforming In 140 Sommerville kap. 12.
© 2012 Microsoft Corporation. Med enerett. Legge til en kontakt Din kontaktliste forenkler kommunikasjonen, og du ser tilstedeværelses- og kontaktinformasjon.
Online løpssøknad via ”Klubben Online” For O-sesongen 2006 skal alle orienteringsgrupper søke om sine arrangementer via elektronisk søknadsskjema i ”Klubben.
Objektorientert design
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Kapittel 4 Skriving av klasser. 4.1 Anatomien til ein klasse Så langt har vi brukt ferdige klasser frå klassebiblioteket i Java Vi lagar objekt og brukar.
1 Ansvarsdrevet design og bruk av design-mønstre Utforming av klassediagrammer
Objektorientert design In 140 Sommerville kap 12 – del 1.
Kapittel 12 Samlingar Samlingar og datastrukturar Ei samling (collection) blir brukt til å oppbevare og handtere andre objekt ArrayList – klassen.
Arv Gjenbruk. Begreper Super Overriding – Samme signatur Polymorfi – «en ting kan bety mange ting»
Android-Programmering Våren Oversikt – PendingIntents  Rollen til PendingIntents  Vanlig bruk  Deling  Sending.
Iterator i Java boolean hasNext() E next() void remove()
Strukturerende elementer i UML
VIS DETTE LYSBILDET: INTRODUKSJON
Objektorientert programmering i Java
Utskrift av presentasjonen:

Memento Object Behavioral Design Pattern

Lagre og hente tilstander • Et system inneholder ofte mekanismer som trenger gjenbruk av tilstander • Memento viser hvordan et objekt kan gjenopprette en tidligere tilstand • Mønsteret forutsetter bruk av to hjelpeklasser • Derfor beskriver mønsteret tre ulike roller

Tre roller til Memento • Originator – Dette er hovedrollen i mekanismen som trenger gjenbruk av tilstander – Denne rollen sørger for å bygge instanser som kapsler inn tilstanden • Memento – Denne rollen bevarer tilstanden – Rollen har et bredt interface mot Originator og et smalt interface mot Caretaker • Caretaker – Caretaker organiserer og kontrollerer tilgang til instanser av memento – Caretaker vet ingen ting om innholdet i memento

Prinsippskisse • Originator og Caretaker har ingen strukturell kobling

GoF applicability list • Memento kan vurderes når – Det er behov for gjenbruk av et objekts tilstand eller deltilstand – Og når samtidig et direkte grensesnitt ville eksponert detaljer som bør være innkapslet • Fra konsekvenslisten finner vi – at tilstanden må lagres utenfor originator – at tilstanden ikke må kreve for store ressurser

Fra GoFs konsekvensliste • Andre objekter beskyttes mot sammensatte detaljer i originator • Originator forenkles ved å unnslippe ansvaret for administrering av andre tilstander • Memento som krever ressurser kan vurdere å lagre kun inkrementelle endringer • Caretaker skal administrere Memento, herunder ”gc”, men uten å vite hva innholdet er

Prosjekt 10 • Klassen Direction i prosjekt 10 sørger for at et annet objekt veksler regelmessig mellom tilstander • Er dette en redusert instans av Memento?