140 likes | 310 Views
Design patterns: State og Strategy. Gruppe 10: Erlend Fuglum Claus Håvik Tommy Kjelsrud Erik Solem Tom Egil Sørlie Hans Tømmerholt Mr. Fix-it: Bjørn Wilhelmsen. Både State og Strategy er typer av Behavioural design patterns.
E N D
Design patterns: State og Strategy Gruppe 10: Erlend Fuglum Claus Håvik Tommy Kjelsrud Erik Solem Tom Egil Sørlie Hans Tømmerholt Mr. Fix-it: Bjørn Wilhelmsen
Både State og Strategy er typer av Behavioural design patterns …altså snakker vi om hvordan systemer/objekter oppfører seg og hvilke handlinger de foretar…
En mulig løsning: State Å skille ut et objekts tilstander som egne objekter. Disse objektene er subklasser av en abstrakt tilstandsklasse. Tilstanden bestemmer hvilken oppførsel programmet har Logikken for endring av tilstander kan plasseres i den abstrakte tilstandsklassen eller i kontekstklassen
Hva betyr dette? Fordeler: Du kan lett legge til, endre og fjerne tilstander uten at klienten trenger å bry seg Systemet blir mer oversiktlig Du slipper ”grisete” blokker med betingelser i koden Ulemper: Flere objekter, tyngre eksekvering
Eksempel: Et grafikkprogram • Tilstander er verktøyene: • Pensel • Blyant • Kloning • Klippe, lime • … ju neim it
En mulig løsning: Strategy • Fremgangsmåtene, eller algoritmene, for å løse et problem skilles ut som egne objekter. • Objektene er subklasser av en abstrakt strategiklasse.
Hva betyr dette? Fordeler • Detaljer er om fremgangsmåtene er skjult for klienten. • Fremgangsmåter kan i stor grad endres og byttes ut, uten at det har store konsekvenser for klienten. • Mer oversiktlig. Ulemper: • Flere objekter. • Tyngre eksekvering. Annet: Klienten må ofte foreta et valg og vite noe om de forskjellige strategiene i en gitt situasjon.
Eksempel: Tegning av spill • Forskjellige krav til grafikk på forskjellige plattformer som en PDA, en PC og en sterk PC. • Fremgangsmåten velges av klienten, avhengig av hvilken plattform den kjører på.
Eks: Sorteringsanimasjoner • Forskjellige sorteringsalgoritmer kan animeres. • Disse kan legges i egne klasser. • Klienten kan velge direkte, eller gjennom f.eks en fabrikk.
Oppsummering • I State flytter du håndteringen av en tilstand til en egen klasse. Tilstander kan lett endres, legges til og fjernes. • I Strategy innkapsles fremgangsmåter i egne klasser.
The music´s over… http://www.ia-stud.hiof.no/~hansstom/se/presentasjon/dp/State-Strategy.ppt