Training Courses
Home Up



Book this course for your company and elevate the effectiveness of your entire programming team.  Contact Andy for availability.

Design Patterns Course

Code:         IM500-020
Series:       Computer Professional
Duration:   2-3 days
Location:   Onsite (your location within Australia (or ask))
Cost:          $Email for pricing for up to 6 people - per day.  $220 per extra person - max 10 people.  Plus GST.
Room:      Trainer requires a whiteboard, projector. Computers for attendees are not needed. 

Course materials:  Are supplied (approx 320 pages) - option for client to print and bind if that is more convenient.  Contains code examples, whiteboard screenshots, tips, UML diagrams, advanced discussions etc.

The front cover of the comprehensive training
materials supplied during this course.

 Sample pages from the course manual.



This course provides students with the necessary knowledge and skills required to understand and use the fundamental 23 design patterns as outlined in the classic book “Design Patterns”.  Participants will be able to use the vocabulary of patterns to communicate to software engineers in order to design superior, maintainable, cutting edge software.

Course Outline

A brief history of design patterns - the patterns movement, how the GOF book was created, why a knowledge of design patterns is crucial to today’s software developers. Where did patterns come from, what is the role of Christopher Alexander. Who are the key patterns people around the world. How has Australia been involved in the world patterns conference scene.

Detailed presentations of 20 design patterns: including: state, strategy, adapter, mediator, template method, bridge, factory + more. 


“State Pattern” can get rid of lots of if/else spaghetti code. 


“Strategy Pattern” can make your application more pluggable. 


“Adapter” is one of the most important fundamental patterns. 


“Mediator Pattern” can reduce coupling between classes and reduce complexity.


Understanding the “Template Method Pattern” requires that you know your object oriented principles and can make your code base more organized. 


“Bridge Pattern” is a little complex but once you have invested in it, allows you to switch implementations with a single switch. 


The factory patterns (“Factory Method” and “Abstract Factory”) are core patterns. 

Many more patterns like this are presented during this course.


How patterns are used together – most people are surprised when shown how patterns can be combined.  We will look at the notion of “roles” in classes and look at diagramming techniques for showing overlapping patterns in UML diagrams.


Design Pattern Software - A presentation of a couple of UML design patterns tools for windows including Sparx Enterprise Architect and IBM Rationale Rose.


Discussion - Current research directions and the future of patterns (both theoretical and tools).  Classic and cutting edge books and ideas are discussed (time permitting).

Outcome and Benefits

After completing this course, students will know how to:

·         Describe the history of patterns development.

·         Appreciate the benefits of a patterns approach to programming design.

·         Describe the detailed design, purpose and behaviour of 20 of the original GOF design patterns.

·         Communicate with other developers using the language of patterns.

·         Use design patterns to improve the design of new and existing software.

·         Implement various patterns in various programming languages.

·         Combine different patterns so that they work together in a software design

·         Understand some of the design patterns contained in such frameworks as.NET and Java

·         Choose from a variety of UML tools which automate the application of patterns


Attendees should have:

·         An Understanding of object oriented programming techniques

·         Experience with an object-oriented programming language such as Java or C#

·         Some exposure to UML diagramming models.

2 or 3 day course

The 2 day course can only cover 2/3rds of the total material in this sheet.  As such only approximately 12 patterns can be covered, and some topics like architectural patterns, uml automation tools etc cannot be covered.  However attendees can to some extent customize the course content within the time constraints.  The 3rd day of the course can be delivered at a later stage as a one day “top up” course.

Course Detail

Introduction to Patterns

What are Patterns?

Pattern Purposes

The GOF patterns

Pattern classifications

The Use of UML

Relationships between patterns

When to use patterns & when not to

Patterns: General Issues

Reading a pattern

Intent, applicability, forces of patterns

Solutions & Consequences

Implementation issues - language specific


Re-factoring of patterns


Creational Patterns

Abstract Factory


Factory Method




Structural Patterns








Null Object


Behavioral Patterns

Chain of Responsibility









Template Method


Architectural Patterns





Patterns in Frameworks





Blending Patterns

Automating patterns - tools

The future of patterns




About the Trainer:

Andy Bulka is Technical Director and Chief Software Architect at Austhink Software  He has been programming for over 25 years, and has applied design patterns to numerous real world applications including windows desktop applications, web sites and even a commercial computer game. 


Andy has been teaching design patterns for four years, running three day workshops covering all the GOF patterns.  He is an active member of Melbourne Patterns User Group giving regular presentations and talks.  Andy was Local Conference Chair at the Australian Koala Plop Patterns Conference 2002, and is author of several papers on Design Patterns and Software development – see 


Andy Bulka
Design Patterns Training
WindowWare Multimedia 
ABN 75 565 207 060
12 Melview Drive
Wyndham Vale VIC 3024
Phone: 0412 759 186