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: Basic knowledge of Java, C# 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:

No courses currently scheduled

If you are interested in this course or would like to schedule an on-site course, please e-mail info@simberon.com

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.

Although the presentation will use Java examples, the students can receive copies of the materials in either Java, C# or Smalltalk. They can also write the hands-on exercises using Java, C# or Smalltalk
 

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