Variasjoner i subklasser.  Prinsippskissen er meget enkel  En abstrakt klasse har en konkret metode og en abstrakt metode  Hver subklasse realiserer.

Slides:



Advertisements
Liknende presentasjoner
Tabeller av objekter Klassen ArrayList
Advertisements

Del 3 : Patterns (Kap 16 – kap 20, Craig Larman) Arne Maus Inst. for informatikk, UiO.
Datafiler og serialisering Tekstfiler Scanner-klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering.
Realisering av Software Patterns Software Design Patterns Realisering med kode Refaktorering Gjenkjenning av mønstre.
Introduksjon til objektorientert programmering i PHP
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
Beslektede algoritmer. Isolere klient fra algoritme  Klienter trenger av og til helt forskjellige måter å gjøre det samme på  Men klienten selv kan.
Kap.8 Sortering og søking sist oppdatert • Del 1 Søking - lineær søking m/u sorterte elementer - binærsøking - analyse • Del 2 Sortering - ”gamle”
Chain of Responsibility GoF mønster Operasjonelt (behavioral)
Mønstre og tekniske applikasjoner
IS-102 Klassedefinisjoner
Generelt I/O if/else Funksjoner Lists Løkker Dictionaries Annet Listebehandling Klasser Python med noen algdat-anvendelser Åsmund Eldhuset asmunde *at*
Gruppe 9 Design evaluering og validering.
Filer Finne minste Finne Største Beregne gjennomsnitt Variabler Tabeller – Arrays Lage frekvenstabell.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Prosjektet transparente lag Composite og tegnende objekter Decorator og gui-kontrollere Factory Method Iterator.
Klassediagrammer II Klassen samler data og operasjoner i passe store enheter Klassen organiserer programdesig net.
Klassediagrammer Klassen er en grunnleggende enhet i et objektorientert system Alle kan finne klasser i et domene Det å finne klasser er en intuitiv aktivitet.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Introduksjon til Java 5.0. Hva er nytt i 5.0? Generiske typer For-løkke med iterator (for-hver løkke) Automatisk innpakking av primitive typer Metadata.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Innkapsling av request. Køing, logging, angre Command tilhører gruppen av ”behavioral patterns” Instanser av mønsteret leder til instanser av forespørsler.
Biblioteket easylib og proped Konfigurering og simpletidy.
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.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
CORBA Noen hull som må fylles: ORB Object Adapters CORBA services IDL Factory Objects.
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.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Kapittel 9 Polymorfi. 9.1 Sein binding Ofte er det perfekt match mellom typen til ein variabel og objektet han refererer til ChessPiece bishop;... bishop.
Kapittel 7 Array (lister og tabellar). 7.1 Arrayelement Array (lister, tabellar) er kjent frå VB Blir brukt til å organisere data når vi har mange dataelement.
Kapittel 10 Exceptions Handtering av exceptions Ein exception er eit objekt som representerer ein feil eller eit unntak Exceptions blir kasta av.
Iterator i Java boolean hasNext() E next() void remove()
Are Raklev Teoretisk fysikk, rom FØ456,
Forelesning 9 Are Raklev.
Are Raklev Teoretisk fysikk, rom FØ456,
Are Raklev Teoretisk fysikk, rom FØ456,
Nye Bildrivstoff Rotary Skien Nye Bildrivstoff Rotary Skien
Tallsystemer.
Tall og algebra Matematikk 1T
Kunnskap skaper verdier
Arbeidsmiljøkonferansen
Forelesning 8 Are Raklev.
Ny Risenga skole - plassering
(oraciones condcionales)
Lokal organisering STUDIELEDERE
Presentasjon NIFs lov- og organisasjonsseminar
Ungdomstrinn i utvikling på Volda ungdomsskule
Are Raklev Teoretisk fysikk, rom FØ456,
Lecture 10.
Are Raklev Teoretisk fysikk, rom FØ456,
Østensjøvannet. Det virkelig levende vassdraget.
Fagkonferansen om karriereveiledning 3.og4.mai 2017.
Triks Avslutt alle klasser, metoder og løkker samtidig som du lager dem. Deklarer alle variablene/referansene på begynnelsen av klassen. Hvis du definerer.
Forelesning 28 Are Raklev.
Are Raklev Teoretisk fysikk, rom FØ456,
Are Raklev Teoretisk fysikk, rom FØ456,
NORDSTRAND IDRETTSFORENING
Are Raklev Teoretisk fysikk, rom FØ456,
Forelesning 10 Are Raklev.
Utdanningsavdelingen Inntak og fagopplæring
Velkommen til foreldremøte
Klassediagrammer II Klassen samler data og operasjoner i passe store enheter Klassen organiserer programdesignet.
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Variasjoner i subklasser

 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

 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

 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.

 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

 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

 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)