De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Introductie tot GoF patterns in Java

Verwante presentaties


Presentatie over: "Introductie tot GoF patterns in Java"— Transcript van de presentatie:

1 Introductie tot GoF patterns in Java
Java patterns Introductie tot GoF patterns in Java

2 Lectuur GoF boek James Cooper Bruce Eckel

3 Wat ? Een design pattern is een standaard oplossing voor een veel voorkomend design probleem Drie types (GoF) Creational : patterns om objecten te creeren Structural : patterns om objecten samen te stellen Behavioral : patterns om onderling gedrag van objecten te regelen, alle andere dus…

4 Creational Factory Abstract Factory Singleton Builder Prototype
objecten creeren via factory interface Abstract Factory factory creeren via factory-factory interface Singleton klasse waarvan slechts 1 object bestaat Builder scheiding van object constructie en voorstelling Prototype objecten creeren door basisobject te klonen

5 Factory pattern Wat ? Wanneer ?
Objecten creeren via ander object (factory) i.p.v. rechtstreeks via constructor Wanneer ? Klasse van object nog niet gekend at compile-time Creatie van object overlaten aan subklasse Creatie = complex proces (bv. pool)

6 Factory pattern Opgave (Cooper)
Eenvoudige Namer klasse : splitst volledige naam op in voornaam en achternaam Twee mogelijke inputs : Piet Hein Hein,Piet Factory selecteert een correcte Namer klasse afhankelijk van input (FirstFirst of LastFirst)

7 Abstract Factory Pattern
Wat ? Niveau van indirectie bovenop Factory, d.w.z de factory zelf is abstract en wordt pas concreet na aanroepen van een creatiemethode Wanneer ? Meerdere families van objecten GUI widgets voor meerdere look-and-feels data access voor meerdere database types

8 Abstract Factory pattern
Oefening: Creeer abstracte factory om een String en een int-waarde op te halen Maak concrete factories die respectievelijk via de console en via een properties file werken

9 Singleton pattern Wat ? Wanneer ?
Aantal instantiaties van een klasse beperken tot 1 (of enkele) Wanneer ? Meestal opgelegd door het model zelf Dure objecten

10 Singleton pattern Opgave( Eckel ) Creeer singleton klasse Singleton
Methoden : getInstance() geeft singleton object terug int getValue() geeft waarde void setValue( int value ) zet waarde Schrijf test waarin je singleton opvraagt, waarde checkt, verandert, opnieuw singleton opvraagt,…

11 Singleton pattern Opgave( Eckel ) Creer pool van connecties
Connection interface ConnectionPool : singleton, gebruikt PoolManager PoolManager : managet pool van objecten ConnectionImplementation

12 Builder pattern Wat ? Wanneer ?
Scheiding van object creatie (gelijk) en representatie (verschillend) Wanneer ? Creatie van meerdere objecten Creatieproces bestaat uit meerdere stappen die echter gelijk zijn voor elk object

13 Opgave Creeer twee builder klassen die een string opsplitsen in woorden en in resp. een Map en een SortedSet opslaan Klasse : BaseBuilder : basisklasse die build proces definieert SetBuilder MapBuilder

14 Prototype pattern Wat ? Creatie van object door klonen Wanneer ?
Object moet gecopieerd worden zonder dat men het type kent Java : Speciale interface hiervoor : Cloneable Opgelet : default implementatie (Object) maakt geen diepe kopie !

15 Prototype pattern Oefening :
Implementeer een clone() methode die een diepe kopie maakt door het object te serializeren/deserializeren

16 Structural Adapter Bridge Composite Decorator
Interface aanpassen aan andere interface Bridge Interface en implementatie kunnen onafhankelijk evolueren Composite Boomstructuur van objecten, zelfde interface voor tak/blad Decorator Functionaliteit toevoegen door te wrappen

17 Adapter Wat ? Klasse die een bestaande interface converteert naar een andere (door delegatie) Wanneer ? Bestaande klasse moet aangepast worden aan een nieuwe interface

18 Adapter Oefening : Adaptee klasse stelt lijst van autos voor met naam + prijs Adapter moet Adaptee aanpassen aan Swing table model

19 Bridge Wat ? Abstracte klasse met meerdere concrete implementaties via delegatie Wanneer ? Als men interfaces en concrete implementaties apart wil laten evolueren

20 Bridge Voorbeeld : Abstraction Implementor RefinedAbstraction
ConcreteImplementorA ConcreteImplementorB

21 Composite Wat ? gemeenschappelijke abstracte klasse voor geheel/deel Wanneer ? boomstructuren

22 Composite Oefening : Stel klassen om een logische expressie te evalueren en uit te printen Evaluatie en uitprinten gebeurt door de boomstructuur te doorwandelen via recursie

23 Decorator Wat ? Dynamisch toevoegen van functionaliteit door te wrappen Wanneer ? Alternatief voor subklassen indien meerdere orthogonale toevoegingen mogelijk

24 Decorator java.io.BufferedReader is een voorbeeld van een decorator van de java.io.Reader klasse Maak een decorator van java.io.Reader die lijn per lijn leest en waarbij men eerst kan vragen of er nog lijnen zijn


Download ppt "Introductie tot GoF patterns in Java"

Verwante presentaties


Ads door Google