Save for later

Design Patterns in Modern C++

Course Overview

This course provides a comprehensive overview of Design Patterns in Modern C++ from a practical perspective. This course in particular covers patterns with the use of:

  • The latest versions of the C++ programming language
  • Use of modern programming approaches: dependency injection, use of coroutines, and more.
  • Use of modern developer tools such as CLion and ReSharper C++
  • Discussions of pattern variations and alternative approaches

This course provides an overview of all the Gang of Four (GoF) design patterns as outlined in their seminal book, together with modern-day variations, adjustments, discussions of intrinsic use of patterns in the language.

What are Design Patterns?

Design Patterns are reusable solutions to common programming problems. They were popularized with the 1994 book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (who are commonly known as a Gang of Four, hence the GoF acronym).

The original book was written using C++ and Smalltalk as examples, but since then, design patterns have been adapted to every programming language imaginable: Swift, C#, Java, PHP and even programming languages that aren't strictly object-oriented, such as JavaScript.

The appeal of design patterns is immortal: we see them in libraries, some of them are intrinsic in programming languages, and you probably use them on a daily basis even if you don't realize they are there.

What Patterns Does This Course Cover?

This course covers all the GoF design patterns. In fact, here's the full list of what is covered:

  • SOLID Design Principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle and Dependency Inversion Principle
  • Creational Design Patterns: Builder, Factories (Factory Method and Abstract Factory), Prototype and Singleton
  • Structrural Design Patterns: Adapter, Bridge, Composite, Decorator, Façade, Flyweight and Proxy
  • Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Null Object, Observer, State, Strategy, Template Method and Visitor

Who Is the Course For?

This course is for C++ developers who want to see not just textbook examples of design patterns, but also the different variations and tricks that can be applied to implement design patterns in a modern way.

Presentation Style

This course is presented as a (very large) series of live demonstrations being done in JetBrains CLion. Most demos are single-file, so you can download the file attached to the lesson and run it in CLion, XCode or another IDE of your choice (or just on the command line).

This course does not use UML class diagrams; all of demos are live coding.

Get Details and Enroll Now

OpenCourser is an affiliate partner of Udemy and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.2 based on 281 ratings
Length 12.5 total hours
Starts On Demand (Start anytime)
Cost $15
From Udemy
Instructor Dmitri Nesteruk
Download Videos Only via the Udemy mobile app
Language English
Subjects Programming
Tags Programming Languages Development

Get a Reminder

Send to:

Similar Courses

What people are saying

design patterns

Don't get me wrong, I think that this course goes far beyond the plain vanilla examples that are seen in books such as "Head First Design Patterns", but I think this is just the first step in seeing how to apply these solutions to real code.

highly recommended for anyone who wishes to learns design patterns.

I liked having all GoF design patterns compiled into a big list and having had examples for them in modern C++.

I learnt a lot of new design patterns and can put names to a couple more I've used in the wild.

While this course was focused on design patterns rather than being a tutorial in modern C++, I also improved my knowledge on how to apply features in C++11, 14 and 17 (part of my motivation for taking this course).

I have learned a lot about design patterns and their variants, in addition to other deeper and more useful knowledge about modern C ++ and the Boost libraries that I did not know.

It explains design patterns really easy.

Most of design patterns are based on the original Gang of Four patterns but updated with 20 years of C++ features.

If you need to learn design patterns, do yourself a favor and skip the original book.

A lot of design patterns were described during this course.

Came here to learn design patterns.

Superb course, describing all the design patterns with notes on why they make sense and where!!

Overall an excellent course which gives a very good overview of design patterns in modern C++.

Use of some of the design patterns is not well demonstrated.

Read more

modern c++

using the modern C++ approaches is icing on the top.

Excellent course, the instructor has a lot of experience on modern C++.

Its a modern C++ course, lots of information included Design Pattern and some STL C++ code.

Exceptional Modern C++ Style!!!

A great course to refresh your knowledge in programming design patterns and in modern C++!

The author explains very well all design patterns in GoF book in a clear way using features of modern c++ and some utilities from boost libraries.

Overall I highly recommend it to those interested in design patterns in context of modern C++.

It was informative both regarding design patterns and also modern C++!

Every one interested in c++ advanced development should have this course done Very good explanation and modern c++ Yes It is a very good course.

Excellent material, usage of modern c++, very clear.

Love how we're taking the Gang of Four book and applying it to modern C++.

Great course on the GOF design patterns using modern C++.

No bullshit, it immediately immerses you into modern C++ constructs.

Fast paced course with very interesting examples on modern C++.

Read more

too fast

Secondly the instructor speaks way too fast while coding so it gets hard to listen to and focus on the coding during the lectures.

The speaker is too fast and I can understand many of the things.

Talking too fast.

Way too fast to follow.

The only thing that bother me a little is too fast talking and coding.

But the pace at which the the instructor is talking is a bit too fast for me.

It needs really an experienced people in C++ in general and specially in C++ 11/14 The instructor was too fast, probably assuming the spectators to understand and grasp the concepts with the same pace as the instructor was thinking.

Jumping from one idea to another, talking too fast.... Its very to the point.

At times just bit too fast but manageable.

not clear understand Too fast and also didn't explain why the PersistentManager::save() was made static.

speaking too fast Good explanation by & live demo code.

Moves too fast.

The speaker is too fast.

Nice explanation about factory pattern Too fast !!

Read more

well explained

The code by example strategy is also great Well structured and well explained.

Efficient course, rich and well explained!

Good It is a well explained and properly organized course.

This has been great because I am also figuring out many of the modern C++ features while refreshing my design patterns and general C++ knowledge Very thorough and well explained!

But this is a very good and in-depth course, I like it so far :) Little bit harder than I thought but he is great tutor Instructor well prepared and all the topics are interesting and well explained.

I want you to make a c++ course gear only to quant finance with detailed examples on how you build nerual networks in cpp from scratch Very well explained and good examples - I'm a self-learned coder currently employed and, in many cases, din't know the name of the coding patterns i've used - was feeling dumb in front of the others.

Very well explained , provide good knowledge of design patterns along with modern c++.

(Asking for a course review after first video, come on Udemy, seriously...) Very well explained.

if that can be explained as different header and class files then it would be more useful SOLID principles very well explained!

Read more

bit too

Some of the exercises a bit too trivial.

The only nitpick I have: probably a bit too much time spent on a "real-time, in-video" coding of a "demo" code that is used to apply pattern to.

The Visitor section too was a bit too heavy for me after the first couple of lectures.

At the beginning the pace of course seems a bit too swift, but then you get accustomed to it.

Read more

coding exercises

good pace and useful coding exercises Good lectures, not always making the most of modern C++ features though.

Small downside is that coding exercises sometimes were not prepared in the best way, sometimes they were too easy and sometimes they had semantic errors like swapping terms.

The coding exercises could use some work.

The course is good but with too many coding exercises.

There are a couple slightly rough spots in the coding exercises where they did not quite match the covered topics as closely as I'd like.

But the coding exercises could have been a little more tougher.

Read more

c++ features

The instructor has a deep knowledge of modern coding practices utilizing new C++ features.

Learned new advanced C++ features as well.

Read more

Careers

An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Research Tech, Design/Production Specialist $43k

Freelance Interior design $47k

Account Design Specialist $58k

Web Design Contractor $77k

Set Renderer/ Prop Design $80k

switchgear design and construction $95k

Mold Design Engineering (CAD) $104k

LNG Pressure Vessel & Mechanical Design Engineer Lead $124k

Senior Substation Design/P&C/Relay/Automation/SCADA Engineer $127k

Project Manager, Systems Design & Development $132k

ASIC Design Engineer 3 $185k

Software Design Engineer in Test Contractor 2 $203k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.2 based on 281 ratings
Length 12.5 total hours
Starts On Demand (Start anytime)
Cost $15
From Udemy
Instructor Dmitri Nesteruk
Download Videos Only via the Udemy mobile app
Language English
Subjects Programming
Tags Programming Languages Development

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now