Download presentation
Presentation is loading. Please wait.
Published byPhilippa Terry Modified over 9 years ago
1
Design Patterns Trends and Case Study John Hurst June 2005
2
Overview Software Patterns Design Patterns Topics Case Study / Examples
3
Introduction Christopher Alexander –A Pattern Language: Towns, Buildings, Construction (1977) –A Timeless Way of Building (1979) “Gang of Four” (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) –Design Patterns (1995) Buschmann et al –Pattern Oriented Software Construction (1996)
4
Key Idea A Software Pattern is: –A solution –To a problem –In a context –With consequences A Software Pattern has a name and a vocabulary.
5
Pattern Languages Intent Also Known As Motivation Applicability Structure Participants Collaborations Consequences Implementation Known Uses Related Patterns
6
OO Design Principles Code to interfaces Prefer composition to inheritance Encapsulate what varies
7
Benefits Improves thinking about OO design –New designs –Existing designs –Helps us realise the benefits of OO Reuse of solutions to common problems –Catalogs Communication tool –Common vocabulary
8
Example: Iterator Intent: –Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation
9
Example: Decorator Intent: –Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.
10
Application of Decorator Apache Commons DBCP (Database Connection Pooling)
11
Patterns Landscape Architectural Patterns Analysis Patterns Design Patterns
12
“Platform Patterns” J2EE Core Patterns MS Building Blocks Contrast with PEAA
13
Antipatterns Examples –Big Ball Of Mud –Copy and Paste Programming –Magic Container –Tower of Voodoo
14
Broken Patterns Double checked locking “Deprecated” Patterns: –Factory Method (due to confusion over what it means) –Bridge –Flyweight –Interpreter
15
Specialised Fields Real-time Concurrency Enterprise Messaging Analysis
16
Refactoring to Patterns Remove duplicate code Simplify logic Communicate intention Increase flexibility
17
Pattern Happy
18
Patterns with Programming Languages Strategy –C++ templates: static type checking –Java interfaces and objects: runtime configuration –Ruby/Smalltalk blocks: idiomatic usage
19
Case Study: HHRDM Design Patterns Architectural Patterns Analysis Patterns
20
Design Patterns Abstract Factory Template Method Strategy Façade Proxy
21
Architectural Patterns Layering Data Access Patterns Domain Model Service Façade
22
Analysis Patterns Temporal Patterns –Effectivity –Snapshot –Temporal Object –Temporal Property –Audit Trail –Bitemporal Model
23
References Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Design Patterns: Elements of Reusable Object-Oriented Software – Addison-Wesley 1995 Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal Pattern-Oriented Software Architecture Wiley 1996 Martin Fowler Patterns of Enterprise Application Architecture – Addison-Wesley 2002 Martin Fowler Refactoring – Addison-Wesley 2000 Martin Fowler Analysis Patterns – Addison Wesley 1996 Gregor Hohpe, Bobby Woolfe Patterns of Enterprise Application Integration – Addison-Wesley 2003 Joshua Kerievsky Refactoring to Patterns – Addison-Wesley 2004 Deepak Alur, John Crupi, Dan Malks Core J2EE Patterns (2 nd Ed) – Addison-Wesley 2003
24
Web Sites Martin Fowler website http://www.martinfowler.com http://www.martinfowler.com Portland Pattern Repository http://c2.com/cgi/wiki http://c2.com/cgi/wiki TheServerSide http://www.theserverside.com http://www.theserverside.com Microsoft Patterns and Practices http://msdn.microsoft.com/architecture /patterns/ http://msdn.microsoft.com/architecture /patterns/
25
Relationships and Similarities ProxyDecorator Many patterns look similar structurally, but have different intent
26
The Agile Manifesto Preferences: –Inidividuals and interactions over processes and tools –Working software over comprehensive documentation –Customer collaboration over contract negotiation –Responding to change over following a plan
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.