C++ Design Patterns: Structural
1h 48mIntermediate2023-05-05
Authors

Károly Nyisztor
Mobile Developer, Instructor
Course details
Design patterns allow you to solve common software development problems in a reusable way, making your code more robust and scalable. In this course, Károly Nyisztor explores the structural design patterns from the Gang of Four. He shows you how to leverage these patterns in modern C++ code and how they can help you design more robust and scalable software. He also discusses the seven structural design patterns from the original design patterns book—adapter, bridge, composite, decorator, facade, flyweight, and proxy—and shows you how to implement each one in modern C++. For each pattern, he shows you when and how to use it, along with its benefits and drawbacks. Join Károly in this course to learn how to apply structural design patterns in your own code and bolster your development skills.
Skills covered
C++Software DesignData EngineeringProgramming LanguagesData ScienceOpen SourceSoftware DevelopmentDeep Dive (X:Y)
Concepts
0. Introduction
- 01 - Structural design patterns in C++
1. The Adapter
- 02 - Overview
- 03 - When should you use the Adapter pattern
- 04 - Implementing an object adapter
- 05 - Implementing a class adapter
- 06 - Challenge - Refactor using the Adapter pattern
- 07 - Solution - Refactor using the Adapter pattern
2. The Bridge
- 08 - Overview
- 09 - Exploding class hierarchies
- 10 - The Bridge pattern in action
- 11 - Challenge - Enhancing a design using the Bridge pattern
- 12 - Solution - Enhancing a design using the Bridge pattern
3. The Composite
- 13 - Overview
- 14 - Implementing a hierarchical structure
- 15 - Redesigning with the Composite pattern
- 16 - Challenge - Drawing shapes
- 17 - Solution - Drawing shapes
4. The Decorator
- 18 - Overview
- 19 - Computer shop demo using inheritance
- 20 - Computer shop demo using the Decorator design pattern
- 21 - Challenge - Pizza toppings
- 22 - Solution - Pizza toppings
5. The Fa ade
- 23 - Overview
- 24 - Complex interface demo
- 25 - Applying the Facade design pattern
- 26 - Challenge - Hide complexity with a facade
- 27 - Solution - Hide complexity with a facade
6. The Flyweight
- 28 - Overview
- 29 - Introducing sprites
- 30 - Reducing memory usage - Part 1
- 31 - Reducing memory usage - Part 2
7. The Proxy
- 32 - Overview
- 33 - What problem does the proxy solve
- 34 - The virtual proxy
- 35 - Challenge - Implement a protective proxy
- 36 - Solution - Implement a protective proxy
Conclusion
- 37 - Next steps