Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA CompTIA Security+ Amazon AWS Microsoft AZ-900
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Personal Transformation Mindfulness Life Purpose Meditation CBT Emotional Intelligence
Web Development JavaScript React CSS Angular PHP Node.Js WordPress Vue JS
Google Flutter Android Development iOS Development React Native Swift Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
Microsoft Power BI SQL Tableau Business Analysis Data Modeling Business Intelligence MySQL Data Analysis Blockchain
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Business Plan Startup Freelancing Online Business Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
Development Programming Languages C++

Design Patterns in Modern C++

Discover the modern implementation of design patterns with С++
Rating: 4.5 out of 54.5 (3,416 ratings)
19,741 students
Created by Dmitri Nesteruk
Last updated 12/2020
English
English [Auto], German [Auto], 
30-Day Money-Back Guarantee

What you'll learn

  • Recognize and apply design patterns
  • Refactor existing designs to use design patterns
  • Reason about applicability and usability of design patterns
  • Learn how to use different aspects of Modern C++
Curated for the Udemy for Business collection

Course content

25 sections • 130 lectures • 12h 27m total length

  • Preview05:38

  • Overview
    00:52
  • Preview06:48
  • Open-Closed Principle
    14:51
  • Liskov Substitution Principle
    07:17
  • Interface Segregation Principle
    06:33
  • Dependency Inversion Principle
    13:21
  • Summary
    02:26

  • Gamma Categorization
    03:36
  • Overview
    01:43
  • Life Without Builders
    03:50
  • Builder
    06:40
  • Fluent Builder
    09:02
  • Groovy-Style Builder
    08:12
  • Builder Facets
    14:55
  • Builder Coding Exercise
    1 question
  • Summary
    00:57

  • Overview
    03:20
  • Point Example
    04:05
  • Factory Method
    04:00
  • Factory
    03:59
  • Inner Factory
    04:02
  • Abstract Factory
    12:25
  • Functional Factory
    03:46
  • Factory Coding Exercise
    1 question
  • Summary
    01:15

  • Overview
    01:59
  • Record Keeping
    06:33
  • Prototype
    05:02
  • Prototype Factory
    07:09
  • Prototype via Serialization
    11:33
  • Prototype Coding Exercise
    1 question
  • Summary
    01:08

  • Overview
    02:43
  • Singleton Implementation
    06:52
  • Testability Issues
    05:04
  • Singleton in Dependency Injection
    06:24
  • Singleton Lifetime in DI Container
    05:40
  • Monostate
    02:49
  • Multiton
    08:36
  • Singleton Coding Exercise
    1 question
  • Summary
    01:50

  • Overview
    02:36
  • Vector/Raster Demo
    09:12
  • Adapter Caching
    07:14
  • Adapter Coding Exercise
    1 question
  • Summary
    01:10

  • Overview
    01:46
  • Pimpl Idiom
    08:54
  • Preview07:35
  • Bridge Implementation
    08:22
  • Bridge Coding Exercise
    1 question
  • Summary
    00:21

  • Overview
    01:53
  • Geometric Shapes
    04:34
  • Neural Networks
    15:19
  • Array-Backed Properties
    09:37
  • Composite Coding Exercise
    1 question
  • Summary
    02:02

  • Overview
    01:46
  • Dynamic Decorator
    09:32
  • Preview12:10
  • Functional Decorator
    11:18
  • Decorator Coding Exercise
    1 question
  • Summary
    01:07

Requirements

  • Good understanding of C++
  • Awareness of features of Modern C++ (11/14/17/...)
  • Understanding of OOP (encapsulation, polymorphism, inheritance)

Description

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.

Who this course is for:

  • Beginner and experienced C++ software developers
  • Developers interested in implementations of design patterns
  • Computer scientists

Featured review

Tamás Solymos
Tamás Solymos
10 courses
2 reviews
Rating: 5.0 out of 5a year ago
Superb course, describing all the design patterns with notes on why they make sense and where!! The quality of the code and screencapture is also great, it's a nice technique to watch somebody code and get to understand the concepts that way.

Instructor

Dmitri Nesteruk
Software/Hardware Engineering • Quant Finance • Algotrading
Dmitri Nesteruk
  • 4.4 Instructor Rating
  • 27,845 Reviews
  • 146,136 Students
  • 21 Courses

Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009. 

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Impressum Kontakt
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.