C++ Design Patterns

Paths

C++ Design Patterns

Author: Dmitri Nesteruk

Design patterns provide developers with templates on how to solve software development problems without reinventing the wheel every time. For C++ developers, understanding design... Read more

C++ Design Patterns -- Singleton -- Builder -- Factory -- Prototype -- Adapter -- Bridge -- Composite -- Decorator -- Facade -- Flyweight -- Null Object -- Proxy -- Chain of Responsibility -- Command -- Interpreter -- Iterator -- Mediator -- Memento

Pre-requisites

You should have familiarity with the C++ language to successfully complete this path.

Beginner

In this beginner section, you’ll learn about the most common creational design patterns and how to apply them in your daily work.

Design Patterns in C++: Creational

by Dmitri Nesteruk

Jan 28, 2016 / 4h 12m

4h 12m

Start Course
Description

A look at the creational design patterns and their implementation using Modern C++. Covers the Factory design pattern (Factory Method, Abstract Factory) as well as Builder, Prototype, and Singleton. Also covers the SOLID design principles, demonstrates Dependency Injection via Boost.DI, and even shows an example of a Maybe Monad.

Table of contents
  1. Course Overview
  2. Preliminaries
  3. Builder
  4. Factories
  5. Prototype
  6. Singleton

Intermediate

The structural patterns take you to the next level. This section expands the number of patterns you already know.

Design Patterns in C++: Structural - Adapter to Decorator

by Dmitri Nesteruk

Apr 22, 2016 / 2h 24m

2h 24m

Start Course
Description

The correct application and recognition of design patterns is an important skill for developers and architects. This course, Design Patterns in C++: Structural - Adapter to Decorator (part of a multi-series course on C++ patterns), introduces you to Structural design patterns. First you'll cover the Adapter and Bridge patterns, moving on to the Composite and Decorator design patterns. You'll also be shown different ways in which these patterns can be implemented in modern C++ (C++ 11 and beyond). Software required: a C++ IDE (e.g., Visual Studio, CLion) or a text editor (e.g., VIM, EMACS) together with a C++ compiler (e.g., GCC, Clang).

Table of contents
  1. Course Overview
  2. Adapter
  3. Bridge
  4. Composite
  5. Decorator

Design Patterns in C++: Structural - Façade to Proxy

by Dmitri Nesteruk

Jun 23, 2016 / 1h 46m

1h 46m

Start Course
Description

The correct application and recognition of design patterns is an important skill for developers and architects. This course, Design Patterns in C++: Structural - Façade to Proxy, is part of a multi-series course on C++ patterns, and it introduces you to structural design patterns. It covers the Façade, Flyweight, Null Object, and Proxy design patterns, showing different ways in which these patterns can be implemented in modern C++ (C++ 11 and beyond). First, you'll learn about Façade. The Façade pattern attempts to hide the interface of a complicated system (often involving several components and their relationships) behind a single, easy-to-use interface. Next, you'll learn about Flyweight, which is used to save up on memory by sharing as much data as is possible with similar objects. After that you'll learn about Null Objects, which lets you provide a neutered, no-op object which conforms to the interface but does absolutely nothing at all. Finally, you'll learn about Proxy design patterns, which lets an object 'stand in' for another object, conforming to the same interface while performing additional operations. By the end of this course, you should be able to recognize these design patterns in other libraries and you'll be able to then apply these patterns in your own work.

Table of contents
  1. Course Overview
  2. Façade
  3. Flyweight
  4. Null Object
  5. Proxy

Advanced

The coverage of the behavioral patterns closes out this path by exposing you to the most relevant behavioral design patterns.

Design Patterns in C++: Behavioral - Chain of Responsibility to Memento

by Dmitri Nesteruk

Aug 12, 2016 / 2h 49m

2h 49m

Start Course
Description

The correct application and recognition of design patterns is an important skill for developers and architects. This course, Design Patterns in C++: Behavioral - Chain of Responsibility to Memento, introduces the viewer to Behavioral design patterns. It covers the Chain of Responsibility, Command, Interpreter, Iterator, Mediator, and Memento design patterns. You'll be shown different ways in which these patterns can be implemented in modern C++ (C++ 11 and beyond). By the end of this course, you'll be more familiar with Behavioral design patterns in C++. Software required: a C++ IDE (e.g., Visual Studio, CLion) or a text editor (e.g., VIM, EMACS) together with a C++ compiler (e.g., GCC, Clang).

Table of contents
  1. Course Overview
  2. Chain of Responsibility
  3. Command
  4. Interpreter
  5. Iterator
  6. Mediator
  7. Memento

Design Patterns in C++: Behavioral - Observer to Visitor

by Dmitri Nesteruk

Sep 22, 2016 / 2h 1m

2h 1m

Start Course
Description

The correct application and recognition of design patterns is an important skill for developers and architects. This course, Design Patterns in C++: Behavioral - Observer to Visitor, part of a multi-series course on C++ patterns, continues to introduce the viewer to Behavioral design patterns. It covers the Observer, State, Stategy, Template Method, and Visitor patterns, showing different ways in which these patterns can be implemented in modern C++ (C++ 11 and beyond). Software required: a C++ IDE (e.g., Visual Studio, CLion) or a text editor (e.g., VIM, EMACS) together with a C++ compiler (e.g., GCC, Clang).

Table of contents
  1. Course Overview
  2. Observer
  3. State
  4. Strategy
  5. Template Method
  6. Visitor