DP is a well-described solution to a common software problem. Its benefits: Already defined to solve a problem. Increase code reusability and robustness. Faster devlopment and new developers in team can understand it easily DP defined in to 3 categories: Creational - Used to construct objects such that they can be decoupled from their implementing system. Structural - Used to form large object structures between many disparate objects Behavioral - Used to manage algorithms, relationships, and responsibilities between objects. Creational : Singleton - Singleton pattern restricts the instantiation of a class and ensures that only one instance of the class exists in the jvm. We have different approaches for Singleton but all of these follow below bullets: Private constructor Private static variable of same class i.e. only instance of class. Public static method of class that returns the instance. A few points to think about before implem...