Log In
0% completed
All Lessons
Free Lessons (6)
Introduction
Why This Course
Prerequisites, the Approach, and Learning Outcomes
Introduction to Design Patterns
Overview of Design Patterns
Origins and History
What Characterizes a Pattern?
Anti-Pattern
Pattern vs. Design Pattern
Three Types of Patterns
Components of a Design Pattern
Algorithms, Frameworks, and Design Patterns
Writing Patterns
Quiz Yourself: Introduction to Patterns
Deep Dive into Design Patterns
Types of Design Patterns from GoF
Strategy Pattern
Inheritance vs. Composition
Strategy Pattern and Delegation
Factory Method Design Pattern
Factory Method Examples
Exercise: Factory Method
Solution: Factory Method
Quiz Yourself: Strategy pattern and Factory Method
Singleton Pattern
Singleton Pattern Implementation
Alternatives to Singleton
Adapter Design Pattern
Adapter Design Pattern Examples
Exercise: Adapter Patterns
Solution: Adapter Patterns
Quiz Yourself: Singleton and Adapter Patterns
Bridge Pattern
Bridge Design Pattern Example
PImpl
Exercise: PImpl Idiom
Solution: PImpl Idiom
Quiz Yourself: PImpl and Bridge Patterns
More Design Patterns
Decorator Design Pattern
Decorator Design Pattern Example
Exercise: Decorator Design Pattern
Solution: Decorator Design Pattern
Quiz Yourself: Decorator Design Pattern
Facade Design Pattern
Facade Design Pattern Example
Composite Design Pattern
Composite Design Pattern Example
Exercise: Composite Design Pattern
Solution: Composite Design Pattern
Quiz Yourself: Facade and Composite Design Patterns
Proxy Design Pattern
Proxy Design Pattern Example
Quiz Yourself: Proxy Design Pattern
Observer Design Pattern
Observer Design Pattern Example
Exercise: Observer Design Pattern
Solution: Observer Design Pattern
Quiz Yourself: Observer Design Pattern
Visitor Design Pattern
Visitor Design Pattern Examples
Template Method
Template Method Example
Quiz Yourself: Visitor and Template Design Patterns
Idioms
RAII Idiom
RAII Idiom Example
Copy-and-Swap Idiom
Exercise: Copy-and-Swap Idiom
Solution: Copy-and-Swap Idiom
Polymorphism
Polymorphism Examples
Exercise: Polymorphism
Solution: Polymorphism
Curiously Recurring Template Pattern (CRTP)
CRTP (Static Polymorphism)
CRTP (Mixins)
Exercise: CRTP Add Class
Solution: CRTP Add Class
Exercise: CRTP-derived Class Restriction
Solution: CRTP-derived Class Restriction
Expression Templates
Exercise: Expression Templates
Solution: Expression Templates
Policy Idiom
Exercise: Template Policy for "MyInt std::map" Key
Solution: Template Policy for "MyInt std::map" Key
Traits
Exercise: Extending Data Type Categorization Using Traits
Solution: Extending Data Type Categorization using Traits
Tag Dispatching Idiom
Exercise: Tag Dispatching
Solution: Tag Dispatching
Type Erasure
Exercise: Type Erasure
Solution: Type Erasure
Architectural Patterns
Layered Pattern
Pipes-and-Filters Pattern
Broker Pattern
Model-View-Controller Pattern
Reactor Pattern
Quiz Yourself: Architectural Patterns
Patterns for Concurrency
Copied Value
Exercise: Check the Race Condition
Solution: Check the Race Condition
Thread-local Storage
Tasks, Futures, and Promises
Exercise: Parallelize Scalar Product Calculation
Solution: Parallelize Scalar Product Calculation
Scoped Locking
Strategized Locking
Thread-Safe Interface
Guarded Suspension
Active Object
Monitor Object
Conclusion
Course Conclusion
Master Software Design Patterns and Architecture in C++
/
...
/
Exercise: Parallelize Scalar Product Calculation
Exercise: Parallelize Scalar Product Calculation
Test your understanding of scalar products.
We'll cover the following...
Challenge
Coding challenge
Challenge
...