Object oriented design patterns help you create more robust and flexible software. In this course I will show you how to use these patterns in TypeScript. Design patterns are best practices that will help you solve common problems in programming. There is no need to solve a generic problem that has been solved many times before. Simple example: how do you write a system that allows user to order a product and customize some of its features?
There are many possible solutions but they probably won't be as flexible as using a decorator pattern.
Try applying the learned design patterns into a fun project or exercise. For example: choose a pattern to build a cash register for a coffee shop. Customers can order any coffee from the menu and customize their order depending on taste. They can for instance choose to add sugar or milk. Or maybe they want a special topping or flavor added to their coffee. After entering all the options, your application should return the total price of the custom coffee.