Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Design Patterns with C++
Rating: 3.2 out of 5(47 ratings)
3,924 students

Design Patterns with C++

Software Design Patterns in theory with implementations using C++
Created byOnur Tuna
Last updated 12/2018
English

What you'll learn

  • You will understand and implement design patterns.
  • Advance your skills in C++.
  • Practice on Object-Oriented Programming.

Course content

3 sections30 lectures2h 31m total length
  • Abstract Factory in Theory3:35

    Explore the abstract factory pattern for creating families of related objects across platforms, emphasizing portability and platform dependence, with a coffee-making example illustrating product variants.

  • Abstract Factory Implementation9:47

    Explore implementing the abstract factory pattern in c++ by building a coffee product interface and concrete coffee variants, organized in factory and product namespaces, including filtered coffee, espresso, and americano.

  • Quiz
  • Builder in Theory2:14

    Explore the builder pattern in theory, constructing complex products from simple objects step by step, with a director guiding engineers to vary internal representation and hide construction costs.

  • Builder Implementation17:27

    Learn to implement the builder design pattern in C++, constructing a transformer product with vehicle type and part lists under a director outside the namespace.

  • Quiz
  • Factory Method in Theory1:29

    Explore the factory method concept by using an interface for product types, avoiding direct constructors, and leveraging class-specific static methods to instantiate espresso or Americano.

  • Factory Method Implementation6:57

    Implement the factory method pattern in C++ by defining a base coffee class and overriding a static method for products like Americano with water.

  • Quiz
  • Prototype in Theory1:43

    Explore the prototype design pattern by cloning objects with a clone method using the new operator, where electric and hydrogen cars inherit from a future car interface; factory not needed.

  • Prototype Implementation11:38

    Implement the prototype design pattern in a prototype namespace by modeling a future car with electric and hydrogen variants, using a pure virtual method and versioned constructors.

  • Quiz
  • Singleton in Theory1:10

    Explore the singleton pattern, the simplest design to ensure a class has one instance, accessed via a static method like getInstance to share data across the program.

  • Singleton Implementation4:58

    Implement the singleton design pattern in a C++ class with an ip property and a private instance, creating the instance on first access and providing get and set for ip.

  • Quiz

Requirements

  • Basic knowledge on any object-oriented language.

Description

This course offers a hands-on and example-oriented approach to learning design patterns in C++. It’s specifically crafted to help you strengthen your understanding of object-oriented architecture through real world and practical implementations. Rather than overwhelming you with heavy theory, it guides you step-by-step using clear and concise examples that demonstrate how design patterns can be used to solve common software design problems.


All you need to get started is a basic knowledge of object-oriented programming. Whether you’ve just learned about classes and inheritance or have some beginner experience with C++, this course is designed to build upon that foundation and elevate your thinking to a more architectural level.


If you’re new to programming or transitioning into software development, this course will introduce you to essential software engineering principles using C++ through abstraction, encapsulation, and modular design. By the end, you’ll not only recognize major design patterns such as Singleton, Factory, Observer, Strategy, and more—but also understand when and how to apply them effectively in your own projects.


This course is ideal for beginners who are eager to improve their coding practices, design cleaner codebases, and gain a solid grasp of reusable, scalable software architecture—all through practical, approachable examples in C++.

Who this course is for:

  • Developers
  • Beginner coders who want to improve their skills