Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
PublisertLillian Carlson Endret for 9 år siden
1
Variasjoner i subklasser
2
Prinsippskissen er meget enkel En abstrakt klasse har en konkret metode og en abstrakt metode Hver subklasse realiserer den abstrakte metoden på hver sin måte
3
En algoritme kan skrives ferdig med alle metodekall Men ett eller flere metodekall kan være abstrakte Abstrakte metoder gjøres ferdige i subklasser Et eksempel på dette er metoden read i Javas rammeverk
4
Metoden read behandler IO svært forskjellig i ulike subklasser Klassen InputStream definerer read abstrakt Dermed kan InputStream definere to viktige metoder helt ferdig read(byte[] b) read(byte[] b, int off, int len) Begge metodene kan utnytte array.length og indekser for å bygge den nødvendige løkken med kall til den abstrakte metoden read.
5
ByteArrayInputStream (prosjekt 5 og 7) lar read lese fra en strøm basert på en Decorator. FileInputStream konfigurer et objekt som leser direkte i et filsystem FilterInputStream bruker en annen InputStream og transformerer dataene Subklassen FilterInputStream kan for eksempel vedlikeholde linjenummer AudioInputStream formaterer read-data som spesifiserte audioformater og bufferlengde
6
Template Method viser hvordan vi kan bruke samme algoritme for ulike typer Mønsteret kan brukes når sekvensen i algoritmen ikke er avhengig av typen To eksempler på Template Method i prosjekter Klassen ConfigModel bruker Template Method i begge sine sekvenser (programkode 52) Klassen Figuremodel i metoden newInstance (programkode 89) Klassen Element med metodene isHot og traceResult? Diskusjoner med utgangspunkt i mønstre øker kunnskap om kode og programdesign
7
Implementere faste deler av en algoritme en gang og la subklasser definere variasjonene Unngå repetisjon av kode ved å refaktorere til generaliserte klasser. Metodikken er å gjenfinne all lik kode i klasser med samme grunnleggende ansvar, og flytte den til en superklasse Kontroll med subklassenes utvidelser ved å deklarere lovlige ”hooks” (Som brukes i Eclipse plugin-teknologi, selvsagt ukjent for GoF i 1995)
Liknende presentasjoner
© 2023 SlidePlayer.no Inc.
All rights reserved.