Booking options
£82.99
£82.99
On-Demand course
7 hours 53 minutes
All levels
Discover the power of modern C++ design patterns, including adapter, façade, and composite. This course provides a comprehensive understanding of each pattern, complete with real-world examples to help you confidently implement them in your projects and build efficient, scalable software like a pro.
With design patterns, it is very easy to solve common object-oriented design problems. However, understanding and learning design patterns is tough and time-consuming. This course will help you get acquainted with design patterns and teach you some useful techniques to implement them in modern C++. The course starts with an introduction to design patterns and explains the structure of a pattern with the help of a Unified Modeling Language (UML) class diagram. Then, you will understand how to implement a design pattern, how to examine the issues, and how to refactor the code by studying different types of design patterns such as adapter, façade, proxy, decorator, composite, bridge, and flyweight. In addition to this, you will also learn about the pros and cons of each pattern. By the end of this course, you will be well-versed in various structural design patterns and will have developed the skills to implement them in modern C++. All the resource files are added to the GitHub repository at: https://github.com/PacktPublishing/Structural-Design-Patterns-in-Modern-C-
Use the adapter pattern to convert an incompatible interface into a compatible one
Control access to the original object using the proxy pattern
Form larger structures through recursive composition using the composite pattern
Simplify complex interfaces of a system using the façade pattern
Enable sharing of large number of objects using the flyweight pattern
Use the decorator pattern to add more behaviors to an object at runtime
If you are a student who wants to get a basic understanding of design patterns; a software developer, project manager, or an architect who wants to understand and implement design patterns in their projects; or a C++ developer who wants to implement design patterns in C++, this course is for you. To get started with this course, it is necessary to have basic knowledge of C++ and object-oriented programming concepts.
With the help of real-world examples written in modern C++, this course gets you acquainted with different types of structural design patterns and helps you understand how a pattern can be implemented efficiently using language features.
Understand various structural design patterns * Find out how structural design patterns create bigger structures through inheritance and composition * Discover amazing techniques to tweak design patterns for performance and maximum flexibility using C++
https://github.com/PacktPublishing/Structural-Design-Patterns-in-Modern-C-
Umar Lone is a civil engineer who found his calling in software development. He started teaching C++ and Visual C++ 15 years ago. Currently, he trains software professionals in various software companies in India in different technologies, such as modern C++, advanced C++, STL, design patterns, Android, Unity, Linux, and more. He is extremely passionate about teaching and has trained more than 20,000 software professionals. An avid gamer, Umar is currently trying his hand at game development in Unity and Unreal. He has a few Android applications to his credit, including one on design patterns. The only thing he likes more than C++ is Modern C++.
1. Introduction
1. Course Overview This video introduces you to the course. |
2. Introduction to Design Patterns This video presents an introduction to design patterns. |
3. Overview of Unified Modeling Language (UML) Class Diagrams This video presents an overview of UML class diagrams. |
4. Single-Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion (S.O.L.I.D.) Principles - Part I This is the first part of the three-part video that explains the S.O.L.I.D. principles. |
5. Single-Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion (S.O.L.I.D.) Principles - Part II This is the second part of the three-part video that explains the S.O.L.I.D. principles. |
6. Single-Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion (S.O.L.I.D.) Principles - Part III This is the third part of the three-part video that explains the S.O.L.I.D. principles. |
7. Structural Design Patterns Overview This video presents an overview of structural design patterns. |
2. Adapter Design Pattern
1. Introduction to the Adapter Pattern This video provides an introduction to the adapter pattern. |
2. Basic Example This video presents a basic example of the adapter pattern. |
3. Game Input This video presents an example of game input. |
4. Using the Adapter Pattern This video explains how to use the adapter pattern. |
5. Adapter Implementation This video explains how to implement the adapter pattern. |
6. Class Adapter This video explains the class adapter. |
7. Pros and Cons This video focuses on the pros and cons of the adapter pattern. |
3. Façade Design Pattern
1. Introduction to the Façade Pattern This video provides an introduction to the façade pattern. |
2. Basic Example This video presents a basic example of the façade pattern. |
3. Console Project - Part I This is the first part of the four-part video that presents details on the console project. |
4. Console Project - Part II This is the second part of the four-part video that presents details on the console project. |
5. Console Project - Part III This is the third part of the four-part video that presents details on the console project. |
6. Console Project - Part IV This is the fourth part of the four-part video that presents details on the console project. |
7. Console Façade for Linux This video explains console façade for Linux. |
8. Pros and Cons This video explains the pros and cons of the façade pattern. |
4. Proxy Design Pattern
1. Introduction to the Proxy Pattern This video introduces you to the proxy pattern. |
2. Basic Example This video presents a basic example of the proxy pattern. |
3. Introducing Virtual Proxy This video introduces you to the concept of virtual proxy. |
4. Implementing Virtual Proxy This video demonstrates how to implement virtual proxy. |
5. Applying Virtual Proxy This video explains how to apply virtual proxy. |
6. Introduction to Protection Proxy This video introduces you to the protection proxy. |
7. Protection Proxy Example This video presents an example of the protection proxy. |
8. Applying Protection Proxy This video explains how to apply the protection proxy. |
9. Remote Proxy Introduction This video introduces you to the remote proxy. |
10. Example of the Remote Proxy This video presents an example of a remote proxy. |
11. Using the Remote Proxy as a Component Object Model (COM) Component This video explains how to use the remote proxy as a COM component. |
12. Smart Proxy This video focuses on smart proxies in detail. |
13. Pros and Cons This video explains the pros and cons of the proxy pattern. |
5. Decorator Design Pattern
1. Introduction to the Decorator Pattern This video introduces you to the decorator pattern. |
2. Basic Example This video presents a basic example of the decorator pattern. |
3. Adding the Abstract Decorator Class This video demonstrates how to add the abstract decorator class. |
4. Implementing and Applying Streams This video explains how to implement and apply streams. |
5. Adding Buffering to Streams This video explains how to add buffering to streams. |
6. Adding the BufferedStream Class This video explains how to add the BufferedStream class. |
7. Adding Encryption and Compression Support to Streams This video explains how to add encryption and compression support to streams. |
8. Using Composition Instead of Inheritance This video explains how to use composition instead of inheritance. |
9. Adding the Abstract Decorator Class to Stream Class Hierarchies This video explains how to add the abstract decorator class to both input and output stream class hierarchies. |
10. Decorator Types This video focuses on the types of decorators. |
11. Static Decorator This video explains the static decorator. |
12. Functional Decorator This video explains the functional decorator. |
13. Pros and Cons This video explains the pros and cons of the decorator pattern. |
6. Composite Design Pattern
1. Introduction to the Composite Pattern This video introduces you to the composite pattern. |
2. Composite Intent and Implementation Overview This video explains the intent of the composite pattern and presents, and overview of the implementation of the pattern. |
3. Basic Example This video presents a basic implementation example of the composite pattern. |
4. User Interface (UI) Example Overview This video provides an overview of the UI with the help of an example. |
5. User Interface (UI) Example - Part I This is the first part of the three-part video that explains how to add the UI class hierarchy. |
6. User Interface (UI) Example - Part II This is the second part of the three-part video that focuses on the issues present in the UI example. |
7. User Interface (UI) Example - Part III This is the third part of the three-part video that demonstrates how to add support for the parent pointer. |
8. Pros and Cons This video explains the pros and cons of using the composite pattern. |
7. Bridge Design Pattern
1. Introduction to the Bridge Pattern This video introduces the bridge pattern. |
2. Bridge Intent and Implementation Overview This video explains the intent of the bridge pattern and presents an overview of the implementation of the pattern. |
3. Basic Example This video presents a basic implementation example of the bridge pattern. |
4. Shapes Hierarchy and Implementing the Line Class This video discusses the shape hierarchy and explains how to implement the line class. |
5. Adding More Shape Classes This video explains how to add the more shape-based classes such as circle, triangle, and so on. |
6. Adding Support for Rendering through OpenGL This video explains how to add support for rendering through OpenGL. |
7. Shapes Hierarchy Issues This video discusses the issues with respect to the shape hierarchy. |
8. Bridge Implementation This video explains how to implement the bridge pattern in the shape drawing application. |
9. Handle-Body This video discusses the handle-body idiom. |
10. Creating the String Class This video demonstrates how to create the String class. |
11. Implementing Sharing for String Objects This video explains how to implement sharing for String objects. |
12. Pointer to IMPLementation (Plmpl) - Part I This is the first part of the two-part video that explains the PImpl idiom. |
13. Pointer to IMPLementation (Plmpl) - Part II This is the second part of the two-part video that explains how to implement PImpl to remove compilation dependencies. |
14. Static Bridge This video talks about the static bridge. |
15. Pros and Cons This video explains the pros and cons of the bridge pattern. |
8. Flyweight Design Pattern
1. Introduction to the Flyweight Pattern This video introduces you to the flyweight pattern. |
2. Intent and Implementation Overview This video explains the intent of the flyweight pattern and presents an overview of the implementation of the pattern. |
3. Basic Implementation This video demonstrates how to implement the flyweight pattern. |
4. Game Implementation - Part I This is the first part of the three-part video that focuses on the 3D models in the game. |
5. Game Implementation - Part II This is the second part of the three-part video that focuses on the issues in the game and explains how to resolve them. |
6. Game Implementation - Part III This is the third part of the three-part video that explains how to add the Car class. |
7. Creating String Class This video demonstrates how to create the String class. |
8. Adding StringInfo for Sharing Internal Strings This video explains how to add StringInfo for sharing internal strings. |
9. Implementing String Interning This video explains how to implement string interning. |
10. Boost.Flyweight This video explains how to use the Boost.Flyweight for interning. |
11. Pros and Cons This video explains the pros and cons of using the flyweight pattern. |