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 |