This intermediate path develops your ability to design maintainable JavaScript applications using object-oriented programming and established design patterns. You will revisit classes, inheritance, polymorphism, and encapsulation as foundations for effective software design.
You will explore 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 how these patterns support flexible object creation, composition, communication, and separation of concerns.
You will apply these concepts to a smart home system, selecting and implementing patterns to solve practical design problems. This path is intended for JavaScript developers who understand programming fundamentals and want to improve the structure, scalability, and maintainability of their code.