110 likes | 338 Views
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 23 patterns (mønstre) Hvert mønster tilhører en av tre hovedtyper. Hovedtyper. Creational Patterns
E N D
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 23 patterns (mønstre) Hvert mønster tilhører en av tre hovedtyper
Hovedtyper • Creational Patterns • Begrensninger i instansiering • Hvem skal få ansvar for instansiering • Hvordan bør instansiering foregå • Structural Patterns • Klassestrukturer med arv og interface • Objektstrukturer med komposisjon og dynamisk funksjonalitet • Behavioral Patterns • Kommunikasjonsmønstre i klasse- og objektstrukturer • Assosiasjoner av typen komposisjon
Creational Patterns • Singleton • Kontrollerer antall instanser, normalt begrenset til en instans. • Se javakode[13].Singleton og javakode[13]. AnXmlGui. Mychooser • Abstract Factory • Skjuler den instansierte/konkrete klassen • Skjuler konstruktører, som i stedet brukes i factory methods • Se Toolkit.getDefaultToolKit() javakode[10].TestTransparent • Se DriverManager.getConnection(a,b,c) javakode[13].EnkelSQL… • Builder • Factory method • Prototype
Structural Patterns • Adapter • Bygg nytt interface for å oppnå samarbeid med immutable klasser • Facade • Bygg forenklet og entydig interface for å gjøre et mer komplisert og flertydig subsystem enklere å bruke • Bridge • Composite • Decorator • Flyweight • Proxy
Adapter • Tilpassing av grensesnitt • Eksempel: Client bruker alltid Iterator
Facade • Klientobjektene trenger et enklere grensesnitt!
Behavioral Patterns • Iterator • Gir aksess til en aggregats datasett uten å eksponere kildens modell • Eksempel: Properties.keys(), Properties.elements(), Vector.Iterator() • Command • Objektinnkapsling av forespørsler, slik at action source og action target er helt isolert fra hverandre. • Observer • Automatisk oppdatering av informasjon om tilstandsendringer • Se javakode[13].patterns • Visitor • State • Strategy, Template Method, Interpreter, Mediator, Memento
Struktur i Command • Isolerer kilde og utfører • Mønsteret viser isoleringen mellom invoker - receiver, og Client - ConcreteCommand
Praktisk Command • Synergier er angre og makro-innspilling • Se javakode[13].patterns
Sammenhenger • Indirection realiserer mange av prinsippene i GRASP • Det samme gjelder for flere prinsipper innenfor GRASP • … og det samme kan sies om mange flere patterns i GoF • GRASP er derfor grunnleggende
Trening? • Hent http://oo.hive.no/uml/ordliste.jar • Omdøp om nødvendig til ordliste.jar • Bruk menyen valg i programmet • Hent filen patterns.dictionary