Welcome to this one-of-a-kind course specifically designed to transform your TypeScript programming skills by diving deep into the world of Gang Of Four Design Patterns, SOLID Design principles, and Object-Oriented Programming (OOP) concepts. Are you an aspiring or intermediate programmer looking to level up your game? Or are you an advanced programmer and need a refresher on the Gang Of Four Design Patterns and SOLID Design Principles? Do you have a grasp of TypeScript and now want to focus on architectural excellence and code reusability? If so, you've come to the right place!
This repository contains all the design patterns which I teach in my Udemy course. Check out the course on 👉 TypeScript Design Patters and SOLID Principles
=============================
- Intro To Design Patterns
- Object Oriented Programming
- Solid Design Principles
- Creational Design Patterns
- Structural Design Patterns
- Behavioural Design Patterns
| Lecture No. | Lecture | Git Branch | Notes |
|---|---|---|---|
| 1 | Introduction | NA | NA |
| 2 | How To Make The Most Out Of This Course | NA | NA |
| 3 | Intro To Design Patterns and Their History | NA | Lecture Notes |
| 4 | Why We Need Design Patterns | NA | Lecture Notes |
| 5 | Cautions and Considerations | NA | Lecture Notes |
| 6 | Classification Of Design Patterns | NA | Lecture Notes |
| 7 | Intro To UML | NA | Lecture Notes |
| 8 | Note About Resource | NA | NA |
| 9 | Setup Development Environment | NA | NA |
| Lecture No. | Lecture | Git Branch | Notes |
|---|---|---|---|
| 10 | What is OOP | NA | Lecture Notes |
| 11 | OOP Lingo | NA | Lecture Notes |
| 12 | Abstraction | Code Branch | Lecture Notes |
| 13 | Abstraction Implementation | Code Branch | Lecture Notes |
| 14 | Abstraction Real World Use Case | NA | Lecture Notes |
| 15 | Abstraction Advantages | NA | Lecture Notes |
| 16 | Encapsulation | Code Branch | Lecture Notes |
| 17 | Encapsulation Implementation | Code Branch | Lecture Notes |
| 18 | Encapsulation Advantages | NA | Lecture Notes |
| 19 | Polymorphism (Subtype) | Code Branch | Lecture Notes |
| 20 | Polymorphism Use Cases | NA |
Lecture Notes |
| 21 | Polymorphism Advantages | NA | Lecture Notes |
| 22 | Inheritance | Code Branch | Lecture Notes |
| 23 | Inheritance Implementation | Code Branch | Lecture Notes |
| 24 | Inheritance Advantages | NA | Lecture Notes |
| Lecture No. | Lecture | Git Branch | Notes |
|---|---|---|---|
| 25 | Solid Design Principles Introduction | NA | Lecture Notes |
| 26 | Single Responsibility Principle (SRP) Intro | Code Branch | Lecture Notes |
| 27 | Real World Application (SRP) | Practice Branch, Solution Branch | Lecture Notes |
| 28 | Advantages Single Responsibility Principle | Code Branch | Lecture Notes |
| 29 | Open Closed Principle (OCP) Intro | Code Branch | Lecture Notes |
| 30 | Real World Application (OCP) | Code Branch |
Lecture Notes |
| 31 | Advantages Of Open Closed Principle (OCP) | Practice Branch, Solution Branch | Lecture Notes |
| 32 | Liskov Substitution Principle (LSP) | Code Branch | Lecture Notes |
| 33 | Real World Application (LSP) | Code Branch | Lecture Notes |
| 34 | Advantages Of The Liskov Substitution Principle (LSP) | Code Branch |
Lecture Notes |
| 35 | Interface Segregation Principle (ISP) | Code Branch |
Lecture Notes |
| 36 | Real World Application of (ISP) | Code Branch | Lecture Notes |
| 37 | Advantages Of Interface Segregation Principle | Code Branch |
Lecture Notes |
| 38 | Dependency Inversion Principle (DIP) | Code Branch | Lecture Notes |
| 39 | Implementation Of Dependency Inversion Principle (DIP) | Code Branch | Lecture Notes |
| 40 | Advantages Of Dependency Inversion Principle | Code Branch | Lecture Notes |
| Lecture No. | Lecture | Git Branch | Notes |
|---|---|---|---|
| 41 | Introduction To Creational Design Patterns | NA | Lecture Notes |
| 42 | Singleton Pattern | Code Branch | Lecture Notes |
| 43 | When To Use Singleton Pattern | Code Branch | Lecture Notes |
| 44 | Singleton Real World Implementation | Code Branch | Lecture Notes |
| 45 | Singleton Advantages | Code Branch | Lecture Notes |
| 46 | Caveats or Criticism Of Singleton Pattern | Code Branch | Lecture Notes |
| 47 | Singleton Use Cases | Code Branch | Lecture Notes |
| 48 | Prototype Pattern | Code Branch | Lecture Notes |
| 49 | When To Use Prototype Pattern | Code Branch | Lecture Notes |
| 50 | Prototype Real World Implementation | Code Branch | Lecture Notes |
| 51 | Prototype Advantages | Code Branch | Lecture Notes |
| 52 | Caveats or Criticism Of Prototype Pattern | Code Branch | Lecture Notes |
| 53 | Prototype Use Cases | Code Branch | Lecture Notes |
| 54 | Builder Pattern | Code Branch | Lecture Notes |
| 55 | When To Use Builder Pattern | Code Branch | Lecture Notes |
| 56 | Builder Real World Implementation | Code Branch | Lecture Notes |
| 57 | Builder Pattern Advantages | Code Branch | Lecture Notes |
| 58 | Caveats or Criticism Of Builder Pattern | Code Branch | Lecture Notes |
| 59 | Builder Use Cases | Code Branch | Lecture Notes |
| 60 | Factory Pattern | Code Branch | Lecture Notes |
| 61 | When To Use Factory Pattern | Code Branch | Lecture Notes |
| 62 | Factory Real World Implementation | Code Branch | Lecture Notes |
| 63 | Factory Pattern Advantages | Code Branch |
Lecture Notes |
| 64 | Caveats or Criticism Of Factory Pattern | Code Branch |
Lecture Notes |
| 65 | Factory Pattern Use Cases | Code Branch |
Lecture Notes |
| 66 | Abstract Factory Pattern | Code Branch | Lecture Notes |
| 67 | When To Use Abstract Factory Pattern | Code Branch |
Lecture Notes |
| 68 | Abstract Factory Real World Implementation | Code Branch |
Lecture Notes |
| 69 | Abstract Factory Advantages | Code Branch | Lecture Notes |
| 70 | Caveats or Criticism Of Abstract Factory Pattern | Code Branch | Lecture Notes |
| 71 | Abstract Factory Pattern Use Cases | Code Branch | Lecture Notes |
| Lecture No. | Lecture | Git Branch | Notes |
|---|---|---|---|
| 72 | Introduction To Structural Design Patterns | NA | Lecture Notes |
| 73 | Facade Pattern | Code Branch | Lecture Notes |
| 74 | When To Use Facade Pattern | Code Branch | Lecture Notes |
| 75 | Facade Real World Implementation | Code Branch | Lecture Notes |
| 76 | Facade Pattern Advantages | Code Branch | Lecture Notes |
| 77 | Caveats or Criticism Of Facade Pattern | Code Branch | Lecture Notes |
| 78 | Facade Pattern Use Cases | Code Branch | Lecture Notes |
| 79 | Bridge Pattern | Code Branch | Lecture Notes |
| 80 | When To Use Bridge Pattern | Code Branch | Lecture Notes |
| 81 | Bridge Real World Implementation | Code Branch | Lecture Notes |
| 82 | Bridge Pattern Advantages | Code Branch | Lecture Notes |
| 83 | Caveats or Criticism Of Bridge Pattern | Code Branch | Lecture Notes |
| 84 | Bridge Pattern Use Cases | Code Branch | Lecture Notes |
| 85 | Composite Pattern | Code Branch | Lecture Notes |
| 86 | When To Use Composite Pattern | Code Branch | Lecture Notes |
| 87 | Composite Real World Implementation | Code Branch | Lecture Notes |
| 88 | Composite Pattern Advantages | Code Branch | Lecture Notes |
| 89 | Caveats or Criticism Of Composite Pattern | Code Branch | Lecture Notes |
| 90 | Composite Pattern Use Cases | Code Branch | Lecture Notes |
| 91 | Decorator Pattern | Code Branch | Lecture Notes |
| 92 | When To Use Decorator Pattern | Code Branch | Lecture Notes |
| 93 | Decorator Real World Implementation | Code Branch | Lecture Notes |
| 94 | Decorator Pattern Advantages | Code Branch | Lecture Notes |
| 95 | Caveats or Criticism Of Decorator Pattern | Code Branch | Lecture Notes |
| 96 | Decorator Pattern Use Cases | Code Branch | Lecture Notes |
| 97 | Adapter Pattern | Code Branch | Lecture Notes |
| 98 | When To Use Adapter Pattern | Code Branch | Lecture Notes |
| 99 | Adapter Real World Implementation | Code Branch | Lecture Notes |
| 100 | Adapter Pattern Advantages | Code Branch | Lecture Notes |
| 101 | Caveats or Criticism Of Adapter Pattern | Code Branch | Lecture Notes |
| 102 | Adapter Pattern Use Cases | Code Branch | Lecture Notes |
| Lecture No. | Lecture | Git Branch | Notes |
|---|---|---|---|
| 103 | Introduction To Behavioural Design Patterns | NA | Lecture Notes |
| 104 | Observer Pattern | Code Branch | Lecture Notes |
| 105 | When To Use Observer Pattern | Code Branch | Lecture Notes |
| 106 | Observer Real World Implementation | Code Branch | Lecture Notes |
| 107 | Observer Pattern Advantages | Code Branch | Lecture Notes |
| 108 | Caveats Or Criticism Of Observer Pattern | Code Branch | Lecture Notes |
| 109 | Observer Patterns Use Cases | Code Branch | Lecture Notes |
| 110 | Iterator Pattern | Code Branch | Lecture Notes |
| 111 | When To Use Iterator Pattern | Code Branch | Lecture Notes |
| 112 | Iterator Real World Implementation | Code Branch | Lecture Notes |
| 113 | Iterator Pattern Advantages | Code Branch | Lecture Notes |
| 114 | Caveats Or Criticism Of Iterator Pattern | Code Branch | Lecture Notes |
| 115 | Iterator Patterns Use Cases | Code Branch | Lecture Notes |
| 116 | Strategy Design Pattern | Code Branch | Lecture Notes |
| 117 | When To Use The Strategy Pattern | Code Branch | Lecture Notes |
| 118 | Strategy Real World Implementation | Code Branch | Lecture Notes |
| 119 | Strategy Pattern Advantages | Code Branch | Lecture Notes |
| 120 | Caveats Or Criticism Of The Strategy Pattern | Code Branch |
Lecture Notes |
| 121 | Strategy Pattern Use Cases | Code Branch | Lecture Notes |
| 122 | Template Method Pattern | Code Branch | Lecture Notes |
| 123 | When To Use The Template Pattern | Code Branch |
Lecture Notes |
| 124 | Template Pattern Real World Implementation | Code Branch | Lecture Notes |
| 125 | Template Pattern Advantages | Code Branch |
Lecture Notes |
| 126 | Caveats Or Criticism Of The Template Pattern | Code Branch | Lecture Notes |
| 127 | Template Pattern Use Cases | Code Branch |
Lecture Notes |
| 128 | Command Design Pattern | Code Branch | Lecture Notes |
| 129 | When To Use The Command Pattern | Code Branch | Lecture Notes |
| 130 | Command Pattern Real World Implementation | Code Branch |
Lecture Notes |
| 131 | Command Pattern Advantages | Code Branch | Lecture Notes |
| 132 | Caveats Or Criticism Of The Command Pattern | Code Branch | Lecture Notes |
| 133 | Command Pattern Use Cases | Code Branch | Lecture Notes |
| 134 | State Design Pattern | Code Branch | Lecture Notes |
| 135 | When To Use The State Design Pattern | Code Branch | Lecture Notes |
| 136 | State Design Pattern Real World Implementation | Code Branch | Lecture Notes |
| 137 | State Design Pattern Advantages | Code Branch | Lecture Notes |
| 138 | Caveats Or Criticism Of The State Design Pattern | Code Branch | Lecture Notes |
| 139 | State Design Pattern Use Cases | Code Branch | Lecture Notes |
| 140 | Chain of Responsibility Pattern | Code Branch | Lecture Notes |
| 141 | When To Use Chain of Responsibility | Code Branch | Lecture Notes |
| 142 | Chain of Responsibility Real World Implementation | Code Branch | Lecture Notes |
| 143 | Chain of Responsibility Advantages | Code Branch | Lecture Notes |
| 144 | Caveats Or Criticism Of The Chain of Responsibility | Code Branch | Lecture Notes |
| 145 | Chain of Responsibility Use Cases | Code Branch | Lecture Notes |