Implementing Design Patterns

In this 3 day class, students will learn that Java Design Patterns are proven solutions to recurring problems in object-oriented software systems. This course covers sixteen design patterns and includes programming exercises to allow students to practice implementing selected patterns.

Audience: This course is for system architects, designers and programmers working on or preparing for a software project using an object-oriented design.

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

To Hire an AMS Design Patterns Subject Matter Expert and Instructor who also teaches this class, call us today at 800-798-3901!

Leave a Reply