This intermediate path explores how design patterns help solve recurring software design problems in TypeScript. You will revisit core object-oriented programming concepts, including classes, inheritance, polymorphism, and encapsulation.
You will examine creational patterns such as Singleton, Factory Method, and Builder; structural patterns such as Adapter, Decorator, and Composite; and behavioral patterns such as Observer, Strategy, and Command. Along the way, you will learn to manage object creation, composition, communication, and responsibility.
You will then apply these concepts to a smart home system, using design patterns to create flexible, extensible, and maintainable TypeScript code. This path is intended for learners with intermediate TypeScript knowledge who want to improve their object-oriented software design skills.