What is the Design Pattern??
Design patterns are all about good OO design templates that are formulated to COPE WITH CHANGE: Handling the complexities of change is the number one priority in a large scale software development. The amount of dependency in a large scale application can be enormous: Hundreds of classes with dependencies and interactions. How does a change in any one of these classes affect the client code? The goal of design patterns is to design the API so that future change is delegated to the implementation code, not to the API, not to the client code, but solely to the implementation code