When a software application development project is taken up, it is essentially thought of as a problem that requires a solution. When we start to develop the application, we start developing a solution specific to the given problem. Eventually, this solution may start getting reused in problems of a similar kind, and becomes a standard solution for solving such problems. As time passes, we see that a lot of problems that display the same pattern. Once we modify our standard solution to work on this observed pattern, we come up with a design pattern. Design patterns are no joke; they take years to produce, after being tried and tested for solving a great number of problems with a similar pattern.
The design patterns not only define the way in which we architect our software application, they also provide knowledge about what worked and what...