Skip to main content

Design Patterns in TypeScript

5h 6m 3s
English
Paid

Master the 23 GoF (Gang of Four) Design Patterns by implementing them in TypeScript. Design Patterns are crucial templates or descriptions used to solve recurring problems in software design. Familiarity with these patterns is invaluable for planning, discussing, managing, and documenting your software applications effectively, both now and in the future.

Throughout this course, each design pattern will be discussed and demonstrated with example code. As you learn each pattern, you will also discover new TypeScript coding concepts, enhancing your understanding and experience with the intricacies of TypeScript programming.

Course Outline

Creational Patterns

  • Factory: Understand the method of creating objects without specifying the exact class of object that will be created.
  • Abstract Factory: Delve into interfaces for creating families of related or dependent objects.
  • Builder: Learn how to construct complex objects step by step.
  • Prototype: Explore creating new objects by copying an existing object, known as the prototype.
  • Singleton: Ensure a class has only one instance, and provide a global point of access to it.

Structural Patterns

  • Decorator: Extend objects' functionality with a flexible alternative to subclassing.
  • Adapter: Allow incompatible interfaces to work together.
  • Facade: Provide a simplified interface to a complex system.
  • Bridge: Separate an object's abstraction from its implementation so the two can vary independently.
  • Composite: Compose objects into tree structures to represent part-whole hierarchies.
  • Flyweight: Support large numbers of fine-grained objects efficiently by sharing their common parts.
  • Proxy: Provide a placeholder for another object to control access to it.

Behavioral Patterns

  • Command: Encapsulate a request as an object, thereby allowing for parameterization and queuing of requests.
  • Chain of Responsibility: Allow for passing a request along a chain of handlers.
  • Observer: Define a subscription mechanism to notify multiple objects of any changes in another object.
  • Interpreter: Define a grammatical representation for a language and an interpreter to work with it.
  • Iterator: Access elements of an aggregate object sequentially without exposing its underlying structure.
  • Mediator: Define an object that encapsulates how a set of objects interact.
  • Memento: Capture and externalize an object's internal state without violating encapsulation for later restoration.
  • State: Allow an object to alter its behavior when its internal state changes.
  • Strategy: Define a family of algorithms, encapsulate each one, and make them interchangeable.
  • Template: Define the skeleton of an algorithm, deferring some steps to subclasses.
  • Visitor: Add new operations to objects without modifying the objects themselves.

Understanding the Pattern Categories

  • Creational: Abstract the instantiation process, leading to logical separation between object composition and representation.
  • Structural: Focus on the composition of classes and objects to form flexible structures.
  • Behavioral: Address communication between objects, the process flow, and responsibilities allocation.

By learning these design patterns, you will develop a crucial vocabulary for designing, documenting, analyzing, and restructuring software development projects effectively, preparing you for ongoing and future software development challenges.

About the Author: udemy

udemy thumbnail
By connecting students all over the world to the best instructors, Udemy is helping individuals reach their goals and pursue their dreams. Udemy is the leading global marketplace for teaching and learning, connecting millions of students to the skills they need to succeed. Udemy helps organizations of all kinds prepare for the ever-evolving future of work. Our curated collection of top-rated business and technical courses gives companies, governments, and nonprofits the power to develop in-house expertise and satisfy employees’ hunger for learning and development.

Watch Online 68 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 68 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Development Environment Setup
All Course Lessons (68)
#Lesson TitleDurationAccess
1
Development Environment Setup Demo
05:21
2
Course Code
08:07
3
Getting Started
08:46
4
Adding tsconfig.json
08:47
5
TSC Watch
03:13
6
Let/Const
02:40
7
Common Types
02:10
8
Strings
01:55
9
Boolean
02:29
10
Number
02:08
11
Array
06:59
12
Dictionary
07:24
13
Tuple
02:31
14
Set
03:50
15
Classes
05:17
16
Interfaces
05:42
17
Abstract Classes
07:02
18
Access Modifiers
06:14
19
Static Members
06:22
20
ES6 Imports/Exports
05:38
21
UML Diagrams
05:15
22
Factory Pattern
05:25
23
Factory Use Case
05:04
24
Abstract Factory Pattern
03:52
25
Abstract Factory Use Case
03:09
26
Builder Pattern
03:03
27
Builder Use Case
04:20
28
Prototype Pattern
05:38
29
Prototype Use Case
06:31
30
Singleton Pattern
03:49
31
Singleton Use Case
03:27
32
Decorator Pattern
02:51
33
Decorator Use Case
05:07
34
Adapter Pattern
04:26
35
Adapter Use Case
06:10
36
Facade Pattern
02:14
37
Facade Use Case
03:57
38
Bridge Pattern
05:05
39
Bridge Use Case
02:01
40
Composite Pattern
06:05
41
Composite Use Case
02:57
42
Flyweight Pattern
05:23
43
Flyweight Use Case
04:03
44
Proxy Pattern
03:51
45
Proxy Use Case
05:49
46
Command Pattern
04:38
47
Command Use Case
04:16
48
Chain of Responsibility Pattern
04:11
49
Chain of Responsibility Use Case
04:01
50
Observer Pattern
04:55
51
Observer Use Case
04:53
52
Interpreter Pattern
10:12
53
Interpreter Use Case
05:00
54
Iterator Pattern
03:07
55
Iterator Use Case
03:12
56
Mediator Pattern
02:45
57
Mediator Use Case
03:34
58
Memento Pattern
04:19
59
Memento Use Case
03:43
60
State Pattern
03:02
61
State Use Case
02:57
62
Strategy Pattern
04:03
63
Strategy Use Case
02:37
64
Template Method
04:24
65
Template Method Use Case
03:53
66
Visitor Pattern
05:44
67
Visitor Use Case
02:59
68
Summary
01:31
Unlock unlimited learning

Get instant access to all 67 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription