Skip to content
Search upcoming classes
Course Name
Location
Date
Price
Register
Limited time only! Get 2 courses for the price of one. Learn more

Object Oriented Design Patterns and Best Practices in C++

Geared for experienced C++ developers, Object-Oriented Design Patterns and Best Practices in C++ is lab-intensive hands-on design patterns training course that explores the most common object-oriented design patterns (Gang of Four) and how to use these patterns to develop solid, robust and reusable software development applications. Students will also review essential OO programming concepts. 

Working in a hands-on environment, developers will explore key Creational, Structural and Behavior Design patterns and how they used most effectively in building robust, reusable applications. This course combines the use of hands-on coding labs with several “mini-projects” to be completed throughout the training to get the students using and reviewing the Patterns in a practical manner.  All lab coding work and examples can be performed working in a C++ development environment.  The course also contains several “thinking and drawing” lab exercises as a component of the object-oriented overview portion of the training course.

Skills-Focused, Hands- on Learning:  This course consists of approximately 50% hands-on lab work (Patterns).  Throughout the course students will be led through a series of progressively advanced topics, where each topic consists of lecture and group discussion.  This class is “technology-centric”, designed to train attendees in the most current, effective techniques with the most effective practices.
 

Available formats for this course
In-Person
Live Online
Corporate
Corporate Online
Duration
5 days/40 hours of instruction

Starting at: $2495

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most. Topics, agenda and labs are subject to change, and may adjust during live delivery based on audience needs and skill-level.

Part 1: Design Principles

1. Design Goals

  • Rotting Design
  • Design Goals
  • Making it Happen
  • Rotting Design
  • Design Goals
  • Making it Happen

2. Smells

  • Rigidity
  • Fragility
  • Immobility
  • Viscosity
  • Needless Complexity
  • Needless Repetition
  • Opacity

3. SOLID Design

  • Single Responsibility
  • Open/Close
  • Liskov Substitution Principle
  • Interface Separation Principle
  • Dependency Inversion Principle

Part 2: Introduction to Design Patterns

1. Introduction to Design Patterns

  • Why We Use Patterns
  • A Crisp Understanding of Patterns
  • Design Patterns in Particular
  • Sound Design Principles Implemented by Patterns

2. Patterns and Principles

  • Differences Between Principles and Patterns
  • Overview of “Gang of Four” Patterns

Part 3: “Gang of Four” Design Patterns

Each Pattern below will include:

  • Context; Problem; Solution
  • Components; Implementation
  • Code Examples; Consequences
  • Review and Summary
  • Supplemental Information

1. Creational Patterns

  • Factory Method
  • AbstractFactory
  • Singleton
  • Exercise: Factory Method Pattern – Connection
  • Exercise: AbstractFactory Pattern – Vehicle Assembly
  • Exercise: Singleton Pattern – Instance Counting
  • Exercise: Singleton Pattern – Permanent Instance

2. Structural Patterns

  • Façade
  • Composite
  • Adapter
  • Proxy
  • Exercise: Façade Pattern – Scanning and Parsing
  • Exercise: Composite Pattern – Display Arithmetic
  • Exercise: Composite Pattern – Write Orders
  • Exercise: Adaptor Pattern – Legacy Connections
  • Exercise: Proxy Pattern – Build a Calculator

3. Behavioral Patterns

  • Iterator
  • Template Method
  • Observer
  • Command
  • State
  • Strategy
  • Exercise: Iterator Pattern – Media Collection
  • Exercise: Template Method (Optional)
  • Exercise: Observer Pattern – Classroom
  • Exercise: Command Pattern – Change of Contact
  • Exercise: State Pattern
  • Exercise: Strategy Pattern

Part 4: Working with Patterns

1. Applying Patterns

  • Usefulness of Patterns
  • Selecting the Right Pattern
  • Adapting an Existing Pattern
  • Creating a New Pattern
  • Language Considerations

 

This an introductory-level programming course, designed for experienced C++ developers who need to identify, design, and lead the implementation of OO projects. We will explore and apply the terminology, the specification, the processes and technologies specific to OO. Examples are written in C++.

 

Attendees should be familiar with UML and have basic programming experience in C++.  This course is not recommended for developers new to C++ programming.

Object Oriented Design Patterns and Best Practices in C++ Schedule

Location
Date
Price
Register
CPSFDC\Entity\Session::__set_state(array( 'sfId' => 'a011G00000VM3X7QAL', 'startDate' => '2020-10-26', 'startTime' => '10:00am', 'endDate' => '2020-10-30', 'endTime' => '6:00pm', 'name' => 'TT1252VCL3', 'standardCourseFee' => 2495.0, 'courseId' => 'TT1250', 'course' => 'a001G00000CCXZPQA5', 'courseSfId' => 'a001G00000CCXZPQA5', 'courseName' => 'Object Oriented Design Patterns and Best Practices in C++', 'instructorId' => '124227', 'instructorSfId' => 'a0237000001Y4SaAAK', 'instructorDisplayName' => 'Trivera', 'instructorName' => 'Trivera', 'locationCode' => 'VCL', 'sessionStatus' => 'O', 'city' => 'Live Online Training', 'state' => NULL, 'cityState' => 'Live, Online Training', 'locationSfId' => 'a0637000000tn2hAAA', 'subjectSfId' => 'a051G00000Jso5fQAB', 'subjectName' => 'Software Development', 'specialitySfId' => 'a051G00000Jso5kQAB', 'specialityName' => 'C', 'expertiseSfId' => 'a051G00000JsoBUQAZ', 'expertiseName' => NULL, 'certificationSfId' => NULL, 'certificationBody' => NULL, 'certificationName' => NULL, 'pdus' => NULL, 'deliveryModalities' => array ( 0 => 'In-Person', 1 => 'Live Online', ), ))
Live, Online Training
Oct 26th - 30th 10:00am - 6:00pm ET
$2495
CPSFDC\Entity\Session::__set_state(array( 'sfId' => 'a011G00000VM3XRQA1', 'startDate' => '2020-12-14', 'startTime' => '10:00am', 'endDate' => '2020-12-18', 'endTime' => '6:00pm', 'name' => 'TT1252VCL4', 'standardCourseFee' => 2495.0, 'courseId' => 'TT1250', 'course' => 'a001G00000CCXZPQA5', 'courseSfId' => 'a001G00000CCXZPQA5', 'courseName' => 'Object Oriented Design Patterns and Best Practices in C++', 'instructorId' => '124227', 'instructorSfId' => 'a0237000001Y4SaAAK', 'instructorDisplayName' => 'Trivera', 'instructorName' => 'Trivera', 'locationCode' => 'VCL', 'sessionStatus' => 'O', 'city' => 'Live Online Training', 'state' => NULL, 'cityState' => 'Live, Online Training', 'locationSfId' => 'a0637000000tn2hAAA', 'subjectSfId' => 'a051G00000Jso5fQAB', 'subjectName' => 'Software Development', 'specialitySfId' => 'a051G00000Jso5kQAB', 'specialityName' => 'C', 'expertiseSfId' => 'a051G00000JsoBUQAZ', 'expertiseName' => NULL, 'certificationSfId' => NULL, 'certificationBody' => NULL, 'certificationName' => NULL, 'pdus' => NULL, 'deliveryModalities' => array ( 0 => 'In-Person', 1 => 'Live Online', ), ))
Live, Online Training
Dec 14th - 18th 10:00am - 6:00pm ET
$2495

Learn more about corporate team training