Software Education 

Custom Development 

Developer Resources 

About Simex 

Contact Simex 

Object-Oriented Design Patterns in C++

Course Length: Three Days

Course Description:

This course will introduce students to the concept of design patterns in object-oriented design and programming. Design patterns are a mechanism for capturing some of what expert designers know and packaging this information in a reusable format. Based on the seminal work by Gamma, Helm, Johnson, and Vlissides, the design patterns movement has produced a vocabulary and library of object-oriented design elements that are widely recognized. This course will study all twenty-three of the patterns from the book "Design Patterns: Elements of Reusable Object-Oriented Software." These include such patterns as Decorator, Façade, Factory, Mediator, Proxy, and Strategy. Although applicable in any object-oriented language, this course will present examples and hands-on exercises in the context of the C++ programming language. All patterns will be presented using UML diagrams and a small C++ application that demonstrates that pattern. Many patterns will include an associated hands-on lab exercise. It will be assumed that all students are familiar with UML class and sequence diagrams, and have experience programming in C++. Some use of templates and the C++ Standard Template Library (STL) will be employed.

A textbook will be provided along with a handout booklet containing all of the presentation slides from the class. Text readings and small exercises will be assigned for completion outside of class. At the end of the course there will be a short exam that will test your comprehension and retention of the concepts presented in the course. The exam will primarily be for your own benefit as you evaluate what new knowledge you've obtained and identify any areas needing further study.