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
- What is a Design Pattern?
- Reasons to study Design Patterns
- History of Design Patterns
- Cataloging Design Patterns
- Patterns covered in this course
- Design Patterns “Themes”
- Chapter 2: The Singleton Pattern
- Overview
- C++ Implementation
- Java Implementation
- Java API Example
- Chapter 3: The Composite Pattern
- Overview
- Structure
- C++ Implementation
- Java Implementation
- Java API Example
- C++ Source Code Example
- Java Source Code Example
- Chapter 4: The Factory Method Pattern
- Overview
- Structure
- C++ Implementation
- Java Implementation
- Java API Example
- C++ Source Code Example
- Java Source Code Example
- Chapter 5: The Observer Pattern
- Overview
- Structure
- C++ Implementation
- Java Implementation
- Java API Example
- C++ Source Code Example
- Java Source Code Example
- Chapter 6: The Template Method Pattern
- Overview
- Structure
- C++ Implementation
- Java Implementation
- Java API Example
- C++ Source Code Example
- Java Source Code Example
- Chapter 7: The Iterator Pattern
- Overview
- Structure
- C++ Implementation
- Java Implementation
- C++ Standard Template Library
- Java API Example
- C++ Source Code Example
- Java Source Code Example
- Chapter 8: The Strategy Pattern
- Overview
- Structure
- C++ Implementation
- Java Implementation
- Java API Example
- Java Source Code Example
- Chapter 9: Other Creational Patterns
- The Abstract Factory Pattern
- The Prototype Pattern
- The Builder Pattern
- Creational Patterns – Summary
- Chapter 10: Other Structural Patterns
- The Adapter Pattern
- The Bridge Pattern
- Decorator Pattern
- Structural Patterns – Summary
- Chapter 11: Other Behavioral Patterns
- The Memento Pattern
- The Chain of Responsibility Pattern
- The Visitor Pattern
- 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!