Why Design Pattern?
In former software development process, classes are tightly coupled to each other which caused perplexity in refactoring, reengineering and maintenance phase where to change the code and fix the issue. later on, developers community got up with the Solution, Making the classes loosely coupled to each other(i.e. Seperating in to different layers User Interface, Bussiness Logic, Service, Data Access, Business Objects, Exception Management etc),Design pattern describes how to handle an object with in the framework effectively inorder to improve the application performance, low memory usage and to avoid Complex code. purpose of design pattern is to reduce the software development process, to bring more understandability to the code such that novice developers can understand it