Experiencing Design Patterns

Duration: 5 days

Level: Intermediate to Advanced

Target Audience: Object Oriented Software Developers, Programmers, Programmer Analysts, Project Leaders

Goals: Learn the 23 classic design patterns along with the strengths and weaknesses of each.

Prerequisites: Knowledge of C#, Java or Smalltalk

Outcomes:Attendees will be able to implement each design pattern and understand when it's appropriate to apply the pattern and (possibly more important), when it's inapproriate to apply them.

Cost: $2495 CDN

Register:
May 8 - May 12, 2006
Jun 5 - Jun 9, 2006
Jul 24 - Jul 28, 2006
Aug 14 - Aug 18, 2006

Description: Design Patterns are proven solutions to common object oriented problems. Design Patterns were popularized by the famous 1995 "Gang of Four" book, "Design Patterns - elements of reusable software design".

In the years since 1995, the object oriented programming community has gained much experience using and applying design patterns. We have also learned many of the down-sides of each of these design patterns.

This course explains all 23 design patterns from the Design Patterns book. Along the way, it presents new insights and experiences with these patterns to help guide you in using them properly.

To fully understand design patterns, it's important to actually use them.  As such, the course is organized as 50% lecture and 50% hands-on exercised where students will actually implement the design patterns using Java, Smalltalk or C#.
 

Topics:

  • What are patterns
  • Misusing patterns
  • The 23 Design Patterns
  • Iterator
    • Changing Collections while Iterating
    • Internal vs. Exernal Iterators
  • Singleton
    • Double Check Locking
    • The problem of Global Access Paths
  • Builder
    • Flat Object Builders
    • Chain and Ring Builders
    • Tree Builders
    • Network Builders
  • Interpreter
    • End User Programming
  • Observer Pattern
    • Chains and Loops
    • Update Parameters
    • The Problem of Excessive Updates
  • Decorator Pattern
    • Wrapper Hell
  • Composite Pattern
    • Caching Composite State
  • Prototype Pattern
    • Shallow Copy
    • Custom Copy
    • Deep Copy
  • Adapter
    • Pluggable Adapters
  • Proxy
    • Pure Proxies versus Leaky Proxies
    • Debugging Proxies
  • Anti-Patterns