Vishal Chovatiya is a Software Developer in India. He has started looking into system/software design & got to know nothing can better start than a Design Pattern? The more one knows them, the easier it gets to solve all the problems we face. Design Patterns establish solutions to common problems which helps to keep code maintainable, extensible & loosely coupled. They are formalized best practices that the programmer can use to solve common problems when designing an application or system. The most important concern which we often neglect is that you should be able to easily change anything later.