technifyed

Packt via Coursera

Structural Design Patterns in Modern C++

Overview

Updated in May 2025.

This course now features Coursera Coach!

A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course.

This course guides you through the most important structural design patterns in modern C++, starting with an introduction to core concepts like design patterns, S.O.L.I.D. principles, and UML class diagrams. You’ll explore a wide range of patterns, including Adapter, Façade, Proxy, and others, with step-by-step explanations. Each module introduces a pattern, presents real-world examples, and provides implementation strategies.

You’ll learn how to apply these patterns in practical scenarios, such as designing game input interfaces, implementing console projects, and optimizing resource usage with proxies. By analyzing each pattern’s pros and cons, you’ll gain insights into when and why to use each approach in your own software projects. The course also focuses on enhancing performance and modularity, showing how design patterns reduce code complexity and promote reuse.

As you progress, you’ll deepen your understanding of advanced C++ concepts, such as smart pointers, shared resources, and pattern-specific idioms. By the end of the course, you’ll be able to confidently apply these patterns to create scalable, maintainable applications, mastering the art of high-level design in modern C++.

This course is designed for intermediate to advanced C++ developers familiar with object-oriented programming principles. A basic understanding of C++ syntax and familiarity with coding projects is recommended. No previous experience with design patterns is required.

Syllabus 8

  1. Introduction 40 minutes

    In this module, we will explore the fundamental concepts of design patterns in modern C++. We begin with an introduction to design patterns and UML class diagrams, then dive into the S.O.L.I.D. principles that serve as foundational guidelines for writing efficient and scalable code. The module conc…

  2. Adapter Design Pattern 55 minutes

    In this module, we will explore the Adapter Design Pattern, a key structural pattern used to reconcile incompatible interfaces in software. We begin with an introduction to the pattern and a basic example, followed by a hands-on application using game input. You'll learn the steps for implementatio…

  3. Façade Design Pattern 1 hour

    In this module, we will dive into the Façade Design Pattern, which simplifies complex subsystems by providing a unified interface. We begin with a basic overview and example, followed by a four-part series where you'll build a console project using the façade pattern. Additionally, we will explore…

  4. Proxy Design Pattern 1.5 hours

    In this module, we will explore the Proxy Design Pattern, which provides a surrogate or placeholder for another object to control access. We will introduce key variations, such as virtual, protection, and remote proxies, demonstrating how to implement and apply them in real-world applications. You'…

  5. Decorator Design Pattern 1.5 hours

    In this module, we will explore the Decorator Design Pattern, which allows for adding responsibilities to objects dynamically without altering their structure. Starting with an introduction and basic example, we move on to building decorators for streams, adding buffering, encryption, and compressi…

  6. Composite Design Pattern 1.5 hours

    In this module, we will explore the Composite Design Pattern, which enables developers to treat individual objects and compositions of objects uniformly. We begin with an introduction to the pattern and a basic example, followed by a detailed application-to-user interface (UI) design. Through a thr…

  7. Bridge Design Pattern 1.5 hours

    In this module, we will explore the Bridge Design Pattern, which separates an object's abstraction from its implementation to enable independent changes. We begin with an introduction and a basic example, followed by practical applications such as building a shape hierarchy and adding OpenGL suppor…

  8. Flyweight Design Pattern 2.5 hours

    In this module, we will explore the Flyweight Design Pattern, which minimizes memory usage by sharing common object states. We begin with an introduction and a basic implementation, followed by a three-part series on applying the pattern in game development for managing 3D models. You'll also learn…

Advantages and disadvantages

Advantages

  • Structured courses with graded quizzes, assignments and deadlines you can reset.
  • A shareable certificate from the university or company when you pay.
  • Financial aid is often approved for students in India (apply 15 days before you need it).
  • Covers niche tools that universities don't teach.
  • Self-paced: start any time.
  • A clear syllabus (8 parts) you can see before you start.
  • Hands-on: you build or practise, not just watch.

Disadvantages

  • Paid after a 7-day free trial (Coursera Plus or per course).
  • Some courses can be audited for free, but graded work and certificates need payment.
  • Many courses are produced quickly from slides and screen recordings; read the reviews first.

Some points apply to every course of this kind; see how we rank.

This course is paid. Here is how to take it for free

  • Free trials: You can start a 7-day free trial for many individual courses, Specializations, or a Coursera Plus subscription to test full course features. Cancel before the seventh day if you do not want to be charged.
  • Financial aid: If you cannot afford the fee for a certificate, you can apply for financial aid through the link on the course home page by filling out an application about your background and goals.

Taught by

  • Packt - Course Instructors

Packt is in Tier 5: mass-produced or unclear of our institution ranking (40/100). Thousands of courses turned out quickly; check reviews first.

Similar courses

Compare these

freeCodeCamp · YouTube

C++ Programming Course - Beginner to Advanced

Learn modern C++ 20 programming in this comprehensive course. 💻 Source code: https://github.com/rutura/The-C-20-Masterclass-Source-Code ✏️ Course developed by Daniel Gakwaya. Check out his YouTube channel: https://www.youtube.com/channel/UCUYUFiuJ5XZ3JYtbq5dXRKQ 🐦 Twitter: https://twitter.com/learn…

Free video31 hours

The Georgia Institute of Technology · edX

Computing in Python IV: Objects & Algorithms

4.636 ratings

Learn about recursion, search and sort algorithms, and object-oriented programming in Python.

Free to audit5 weeks, 9 - 10 hours per week

Stanford University · edX

Compilers

4.534 ratings

This self-paced course will discuss the major ideas used today in the implementation of programming language compilers, including lexical analysis, parsing, syntax-directed translation, abstract syntax trees, types and type checking, intermediate languages, dataflow analysis, program optimization,…

Free to audit

IIT Kharagpur · NPTEL

Programming in Modern C++

Computer Science and Engineering course by Prof. Partha Pratim Das.

Free course12 weeks, 72 lectures

freeCodeCamp · YouTube

C / C++

Free video8 videos, 32 hours