What you'll learn

  • Understand what behavioral design patterns are

  • How behavioral design patterns use compile & runtime polymorphism to solve design problems

  • Implement behavioral design patterns using Modern C++ features

Prerequisites

  • Basic knowledge of C++

  • Good understanding of Object Oriented Programming

Course Overview

This course aims to help you understand & implement Behavioral Design Patterns. Each pattern is explained with multiple examples and through modern C++. This helps you understand how the pattern can be implemented efficiently using language features. I provide real-world  examples written in Modern C++. These examples will compile & execute on any platform that supports a C++ compiler.

You'll learn patterns using the following process:

This is an intensive discussion that spans multiple lectures. At the end of each section, you'll understand the pattern in depth and can apply it in your code or easily clear any design interview.

Course curriculum

  • 2

    Basic Concepts

  • 3

    Strategy

    • Source Files

    • Introduction

    • Basic Example

      FREE PREVIEW
    • SpreadSheet Application - I

    • Spreadsheet Application - II

    • Spreadsheet Application - III

    • Spreadsheet Application - IV

    • Spreadsheet Application - V

    • Dynamic Array - I

    • Dynamic Array - II

    • Dynamic Array - III

    • Dynamic Array - IV

    • Null Object Pattern

    • Static Strategy

    • Function Strategy - I

    • Function Strategy - II

    • Non-Member Strategy Pointer

    • Pros Cons

    • Review

  • 4

    Template Method

    • Source Files

    • Introduction

    • Basic Implementation

      FREE PREVIEW
    • Document Framework - I

    • Document Framework - II

    • Document Framework - III

    • Template Method - I

    • Template Method - II

    • Template Method - III

    • Pros & Cons

  • 5

    Command

  • 6

    Memento

  • 7

    Chain Of Responsibility

    • Source Files

    • Introduction

    • Basic Implementation

      FREE PREVIEW
    • Help System - I

    • Help System - II

    • Logging System - I

    • Logging System - II

    • Logging System - III

    • Logging System - IV

    • Pros & Cons

  • 8

    Observer

    • Source Files

    • Introduction

    • Basic Implementation

      FREE PREVIEW
    • Alarm System

    • Slide Deck - I

    • Slide Deck - II

    • Slide Deck - III

    • Slide Deck - IV

    • Sensor - I

    • Sensor - II

    • ChangeManager - I

    • ChangeManager - II

    • Pros & Cons

  • 9

    Mediator

  • 10

    Visitor

    • Source Files

    • Introduction

    • Basic Implementation

      FREE PREVIEW
    • Shapes Example - I

    • Shapes Example - II

    • Shapes Example - III

    • Shapes Example - IV

    • Shapes Example - V

    • Shapes Example - VI

    • Acyclic Visitor

    • Generic Acycle Visitor - I

    • Generic Acyclic Visitor - II

    • Variant

    • Overload Pattern

    • Pros & Cons

  • 11

    Interpreter

    • Source Files

    • Introduction

    • Basic Implementation

      FREE PREVIEW
    • Lexing And Parsing

    • Boolean Evaluator

    • Boolean Interpreter - I

    • Boolean Interpreter - II

    • Boolean Interpreter - III

    • RPN Evaluator - I

    • RPN Evaluator - II

    • Pros & Cons

  • 12

    State

    • Source Files

    • Introduction

    • Basic Example

      FREE PREVIEW
    • Lamp - I [NoState]

    • Lamp - II [Enum States]

    • Lamp - III [State Pattern]

    • Lamp - IV [Yellow State]

    • Lamp - V [Factory]

    • Transition Table - I

    • Transition Table - II

    • Methods for States - I

    • Methods for States - II

    • Methods for States - III

    • Methods for States - IV

    • Pros & Cons

  • 13

    Iterator

    • Source Files

    • Introduction

    • Basic Implementation

      FREE PREVIEW
    • Organization - I

    • Organization - II [Cursor]

    • Organization - III [Iterator]

    • Containers - I [Array]

    • Containers - II [List]

    • Containers - III [Issues]

    • Containers - IV [ArrayIterator]

    • Containers - V [ListIterator]

    • C++ Iterators - I

    • C++ Iterators - II

    • C++ Iterators - III [More Iterators]

    • Pros & Cons

Instructor

Owner at Poash Technologies & Poash Learning

Umar Lone

Civil engineer who found his calling in software development. Never worked as a Civil engineer, jumped at the first chance and started teaching C++, Visual C++ & COM 18 years ago. Currently, trains software professionals in various IT companies in India in different technologies, such as C++, Advanced C++, STL, Design Patterns, Android, Unity, Linux, etc. Very passionate about teaching and has trained more than 35,000 software professionals in a teaching career spanning more than 2 decades. An avid gamer, currently trying his hand with game development in Unity & Unreal. Has a few Android applications to his credit, including one on Design Patterns. Only thing he likes more than C++ is Modern C++.

Reviews

What other students say about this course

5 star rating

Awsome, as always.

Jesús Izquierdo

I've purchased the three design patterns courses from Umar, and they are the best info on the Internet about it in modern C++.

I've purchased the three design patterns courses from Umar, and they are the best info on the Internet about it in modern C++.

Read Less
star rating

FAQ

  • Why should I purchase this course?

    This is one of a kind course on Design Patterns with examples that use Modern C++ features. (C++11/14/17).

  • The same course is also available on Udemy & other platforms. Why should I purchase from here?

    Because you'll have direct access to the instructor and can ask for support anytime during your learning.

  • How soon are the student queries answered?

    Usually within 30 minutes.

  • What do I get when I purchase this course?

    Access to the course videos, source code & slide deck.

  • How long will I have access to this course?

    Lifetime access.

  • What if I don't like the course & want a refund?

    You can get a refund within 30 days after purchasing the course, as long as the course engagement is less than 30 minutes.

  • Can I watch this course on a mobile device?

    Yes, and you don't have to download any app. The website is optimized for viewing on all mobile devices (Android/iOS).

  • Can you also do a live training for a group of students or a company?

    Certainly. Send an email to [email protected].

  • I've some more questions.

    We'll be glad to answer. Just send an email to [email protected].