This action might not be possible to undo. Are you sure you want to continue?
-Andy Bulka 2002 http://www.andypatterns.com
Using Patterns in Real Projects
• What is it like to use design pattern in real life programming? • Do the sometimes academic patterns translate into the real world? • The answer is yes – I will back this up with three examples of where I have used patterns in real world projects.
• Patterns - Definitions • Patterns Example • My personal definition and approach to patterns • Commercial Projects using patterns • Patterns I have written • Links, Patterns Groups in Australia
What are Patterns?
• Patterns are conventions for describing and documenting recurring design decisions within a given context, in software design & engineering. • A problem/solution pair given a standard name. • A pattern is documented using a standard format which includes a sample UML diagram of a typical solution.
Example - Adapter Pattern
• Convert the interface of a class into another interface clients expect. • Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.
Adapter - two solutions
Adapter comes in two variants; one making use of delegation:
and one based on multiple inheritance
Design Patterns Book
The "Bible" of Design Patterns
• • • • • • • Pattern templates typically contain: Name Intent / Motivation Problem Context & Forces Solution Consequences
To Record Experience...
Anecdote - working alone...
To Share Experience...
Personally I think Patterns are
• Share and document experience • Great as a vocabulary between programmers and design tool • Like problem / solution pairs • Just a name for a new „thick/non-obvious‟ concept? A „distinction‟. • Later patterns become common terms.
Educational Reasoning Software
Payroll System War Game
Reason 2 - Melb University
• • • • Mentor in Delphi & OO Patterns where possible Model - „cauldron of creation‟. Composite. Command, Template, Strategy for persistence, Adaptor incl. delegation via a pointer “this is an important idiom” • Model View Controller variation MGM. Hooking up a standard Windows GUI treeview to model.
Reason 2 - UML
There are several design patterns in this UML diagram. P.S. In later years I became interested in how to explicitly represent patterns in UML diagrams..
Game - 2D wargame
• • • • • • Python SDL graphics (pyGame) Single and Multiplayer over internet Game AI Lots of pieces Moving Scrolling map
Game - Preparation
• Starting a new project in a new domain - I wanted to know what best practices were. • “Game patterns” on the web documented best practices, tips and tricks and useful rules of thumb and mini designs. • Melb Patterns Group presentation • Patterns used so far - MVC, Façade, Singleton, MGM, Mediator, RM, TI, Null Object, Adaptor, Strategy, Observer, State.
Game Patterns as UML
Game so far
Game Gems & AI Wisdom book
• Patterns vs. “Gems” • Patterns vs. “Problem / Solution pairs” • Still talk about forces and consequences and trade-offs, though not as formal section headings. • Some sections not strictly suited to being a pattern, instead they talk about optimisations or more specific issues.
• Delphi project • Experienced content expert • Was a payroll patterns paper at KoalaPlop 2002 • See also “Business Modelling in UML” by Eriksson & Penker - “Business Patterns at Work”. • Transformation Interface Pattern (Gui and DB versions)
Australian Patterns Conference
The Country Place Conference Centre
Location: The Dandenongs International visitors
Patterns I have written for the conference
• Model Gui Mediator • Relationship Manager • Transformation Interface
Plop Conference Proceedings
• KoalaPLoP is hosted in Melbourne
• Melbourne Patterns Group