Duration2 to 3 days
Recommended Class Size: 10 to 20 
Core understanding of programming principles

This course examines all twenty-three patterns in Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, John Vlissades and Refactory principal Ralph Johnson. The course explains what patterns are and how they can be used to help design object-oriented software. We examine the most important patterns in depth, ensuring that attendees have seen all the patterns at least once. In addition, the NullObject, Type Object and Properties patterns will be reviewed, and their roles in building highly configurable dynamic systems will be examined. The course can be taught using examples from C#/.NET, Java, and C++. At the conclusion of training, students will understand design patterns, know where they fit in the software development process and be able to leverage them to solve design problems effectively.

Course Objectives:

  • Describe what patterns are, how to use them, and why they are important
  • Teach where patterns should be applied to improve your designs
  • Show how patterns can make the design process more efficient
  • Present all twenty-three patterns from the Design Patterns book
  • Present several additional patterns from the growing body of patterns literature
  • Give examples drawn from a variety of industries and problem domains of how patterns are used 
  • Examine the relationship between patterns and traditional methods
  • Show how patterns can be combined and composed in original ways
  • Focus on how to write object-oriented programs using patterns in Java
  • Look at the relationship among patterns, frameworks, object-oriented languages, and software architecture