Skip Navigation Links

Course Length:
3 Days
Course Description:
Design Patterns are proven solutions to recurring problems in object-oriented software systems. This course covers sixteen design patterns and includes detailed programming exercises to allow students to practice implementing selected patterns.
Who Should Attend:
This course is for system architects, designers and programmers working on or preparing for a software project using an object-oriented design.
Benefits of Attendance:
Upon completion of this course, students will be able to:
  • Describe the purpose of design patterns.
  • Understand the ways that design patterns are documented and classified.
  • Use the Singleton Pattern to provide controlled access to the sole instance of a class.
  • Use the Composite Pattern to represent whole-part hierarchies of objects.
  • Use the Factory Method Pattern to eliminate the need to 'hard-code' specific class names.
  • Use the Observer Pattern to minimize coupling between domain and interface objects.
  • Use the Template Method Pattern to implement the common parts of an operation.
  • Use the Strategy Pattern to configure a class with one of many alternate behaviors.
  • Use the Iterator Pattern to separate the traversal mechanism from an aggregate object and to support concurrent traversals on the same object.
  • Use other creational patterns to help make systems independent of how its objects are created.
  • Use other structural patterns to compose classes and objects into larger structures.
  • Use other behavioral pattern to manage algorithms and assign responsibilities to objects.
Prerequisites:
Programming experience in Java or C++ and some familiarity with object-oriented concepts is required.
Course Outline:
  • Chapter 1: Introduction
    1. What is a Design Pattern?
    2. Reasons to study Design Patterns
    3. History of Design Patterns
    4. Cataloging Design Patterns
    5. Patterns covered in this course
    6. Design Patterns "Themes"
  • Chapter 2: The Singleton Pattern
    1. Overview
    2. C++ Implementation
    3. Java Implementation
    4. Java API Example
  • Chapter 3: The Composite Pattern
    1. Overview
    2. Structure
    3. C++ Implementation
    4. Java Implementation
    5. Java API Example
    6. C++ Source Code Example
    7. Java Source Code Example
  • Chapter 4: The Factory Method Pattern
    1. Overview
    2. Structure
    3. C++ Implementation
    4. Java Implementation
    5. Java API Example
    6. C++ Source Code Example
    7. Java Source Code Example
  • Chapter 5: The Observer Pattern
    1. Overview
    2. Structure
    3. C++ Implementation
    4. Java Implementation
    5. Java API Example
    6. C++ Source Code Example
    7. Java Source Code Example
  • Chapter 6: The Template Method Pattern
    1. Overview
    2. Structure
    3. C++ Implementation
    4. Java Implementation
    5. Java API Example
    6. C++ Source Code Example
    7. Java Source Code Example
  • Chapter 7: The Iterator Pattern
    1. Overview
    2. Structure
    3. C++ Implementation
    4. Java Implementation
    5. C++ Standard Template Library
    6. Java API Example
    7. C++ Source Code Example
    8. Java Source Code Example
  • Chapter 8: The Strategy Pattern
    1. Overview
    2. Structure
    3. C++ Implementation
    4. Java Implementation
    5. Java API Example
    6. Java Source Code Example
  • Chapter 9: Other Creational Patterns
    1. The Abstract Factory Pattern
    2. The Prototype Pattern
    3. The Builder Pattern
    4. Creational Patterns - Summary
  • Chapter 10: Other Structural Patterns
    1. The Adapter Pattern
    2. The Bridge Pattern
    3. Decorator Pattern
    4. Structural Patterns - Summary
  • Chapter 11: Other Behavioral Patterns
    1. The Memento Pattern
    2. The Chain of Responsibility Pattern
    3. The Visitor Pattern
    4. Behavioral Patterns - Summary
  • Appendix A: References And Web Resources
  • Appendix B: Exercises - C++
  • Appendix C: Exercises - Java
  • Appendix D: Antipatterns