Master-OOPS 5 crucial object oriented design principles and Applying design patterns such as Strategy, Observer, Template Method, Factory, and Builder