Cademy logoCademy Marketplace

Course Images

Structural Design Patterns in Modern C++

Structural Design Patterns in Modern C++

🔥 Limited Time Offer 🔥

Get a 10% discount on your first order when you use this promo code at checkout: MAY24BAN3X

  • 30 Day Money Back Guarantee
  • Completion Certificate
  • 24/7 Technical Support

Highlights

  • On-Demand course

  • 7 hours 53 minutes

  • All levels

Description

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-

What You Will Learn

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

Audience

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.

Approach

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.

Key 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++

Github Repo

https://github.com/PacktPublishing/Structural-Design-Patterns-in-Modern-C-

About the Author

Umar Lone

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++.

Course Outline

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.

Course Content

  1. Structural Design Patterns in Modern C++

About The Provider

Packt
Packt
Birmingham
Founded in 2004 in Birmingham, UK, Packt’s mission is to help the world put software to work in new ways, through the delivery of effective learning and i...
Read more about Packt

Tags

Reviews