Behavioral Design Patterns with C++ Online Course
This course offers a structured and practical guide to behavioral design patterns in modern C++. Each pattern is explained step by step, starting with its intent, structure, participants, and client communication, supported by UML class diagrams for clarity. Students explore example implementations, learn how to refactor them to avoid design issues, and study multiple variations of the same pattern to understand their versatility. The course covers key patterns such as Strategy, Template Method, Command, Memento, Chain of Responsibility, Observer, Mediator, Visitor, Interpreter, State, and Iterator, along with their pros and cons. By the end, learners will gain a strong grasp of behavioral design patterns and the ability to apply them effectively in real-world C++ development.
Who should take this Course?
The Behavioral Design Patterns with C++ Online Course is ideal for C++ developers, software engineers, and system architects who want to learn how to implement behavioral design patterns to improve code flexibility, maintainability, and communication between objects. It’s also suitable for students and professionals preparing for advanced programming or design interviews, as well as those aiming to strengthen their object-oriented design skills. Prior knowledge of C++ and object-oriented programming is recommended for effective learning.
What you will learn
- Implement behavioral design patterns using modern C++ features
- See how behavioral design patterns use compile and runtime polymorphism
- Look at the Strategy, Template Method, and Command design patterns
- Learn Memento, CoR (Chain of Responsibility), and State design patterns
- See Observer, Mediator, Visitor, Interpreter, and Iterator design patterns
- Explore the pros and cons of each design pattern
Course Outline
Introduction to the Course
- Why You Should Take This Course
Basic Concepts
- Introduction to Patterns
- Overview of Class Diagram
- Overview of Behavioral Patterns
Strategy
- Introduction
- Basic Example
- Spreadsheet Application - I
- Spreadsheet Application – II
- Spreadsheet Application - III
- Spreadsheet Application - IV
- Spreadsheet Application – V
- Dynamic Array - I
- Dynamic Array - II
- Dynamic Array - III
- Dynamic Array - IV
- Null Object Pattern
- Static Strategy
- Function Strategy - I
- Function Strategy - II
- Non-Member Strategy Pointer
- Pros and Cons
Template Method
- Introduction
- Basic Implementation
- Document Framework - I
- Document Framework - II
- Document Framework - III
- Template Method - I
- Template Method - II
- Template Method - III
- Pros and Cons
Command
- Introduction
- Intent
- Basic Implementation - I
- Basic Implementation - II
- FindDialog - I
- FindDialog - II
- TextPad - I
- TextPad - II
- TextPad - III
- TextPad - IV
- TextPad - V
- TextPad - VI
- TextPad - VII
- TextPad - VIII
- TextPad - IX
- Undo - I
- Undo - II
- Undo - III
- Undo - IV
- Undo - V
- DataList - I
- DataList - II
- Pros and Cons
Memento
- Introduction
- Basic Implementation
- Account Class
- Hangman - I
- Hangman - II
- Hangman - III
- Hangman - IV
- Hangman - V
- Hangman - VI
- Pros and cons
Chain of Responsibility
- Introduction
- Basic Implementation
- Help System - I
- Help System - II
- Logging System - I
- Logging System - II
- Logging System - III
- Logging System - IV
- Pros and Cons
Observer
- Introduction
- Basic Implementation
- Alarm System
- Slide Deck - I
- Slide Deck - II
- Slide Deck - III
- Slide Deck - IV
- Sensor - I
- Sensor - II
- Change Manager - I
- Change Manager - II
- Pros and Cons
Mediator
- Introduction
- Basic Implementation
- Chat System - I
- Chat System - II
- DialogBox - I
- DialogBox - II
- DialogBox - III
- DialogBox - IV
- Pros and Cons
Visitor
- Introduction
- Basic Implementation
- Shapes Example - I
- Shapes Example - II
- Shapes Example - III
- Shapes Example - IV
- Shapes Example - V
- Shapes Example - VI
- Acyclic Visitor
- Generic Acycle Visitor - I
- Generic Acycle Visitor - II
- Variant
- Overload Pattern
- Pros and Cons
Interpreter
- Introduction
- Basic Implementation
- Lexing and Parsing
- Boolean Evaluator
- Boolean Interpreter - I
- Boolean Interpreter - II
- Boolean Interpreter - III
- RPN Evaluator - I
- RPN Evaluator - II
- Pros and Cons
State
- Introduction
- Basic Example
- Lamp - I (NoState)
- Lamp - II (Enum States)
- Lamp - III (State Pattern)
- Lamp - IV (Yellow State)
- Lamp - V (Factory)
- Transition Table - I
- Transition Table - II
- Methods for States - I
- Methods for States - II
- Methods for States - III
- Methods for States - IV
- Pros and Cons
Iterator
- Introduction
- Basic Implementation
- Organization - I
- Organization - II (Cursor)
- Organization - III (Iterator)
- Containers - I (Array)
- Containers - II (List)
- Containers - III (Issues)
- Containers - IV (ArrayIterator)
- Containers - V (ListIterator)
- C++ Iterators - I
- C++ Iterators - II
- C++ Iterators - III (More Iterators)
- Pros and Cons