What are Design Patterns?
The design patterns are nothing but proven solutions to common problems that the software developers face while developing the software. These proven solutions were attained through trial and error methods by several software developers after spending considerable time.
Design Patterns signify the best practices used by skilled software developers in object oriented methodology. It has to be noted that the design pattern is not a completed design, which can be converted directly into source code. Design pattern is a template indicating about how a problem can be solved.
History of Design Patterns
Design Patterns was instigated as an architectural model by Christopher Alexander in the period 1977 to 1979. According to this architectural model, the architectural design ideas were captured as reusable and archetypal descriptions.
In the year 1987, Ward Cunningham and Kent Beck started experimenting about how to apply patterns to software programming and they submitted their results at the OOPSLA conference that year. In the next few years, Kent Beck, Ward Cunningham and others followed up on this work.
Design patterns gained popularity after release of the book named “Design Patterns: Elements of Reusable Object-Oriented Software”. This book was issued in the year 1994 by the famous “Gang of Four” authors namely John Vlissides, Erich Gamma, Ralph Johnson, and Richard Helm. The “Gang of Four” authors are often condensed as “GOF”. This book initiated the concept of Design Patterns in Software Development.
Need for Design Patterns
- Rather than having to re-invent the wheel, we can re-use an existing solution recognized across organizations as something that simply works. Since it is well documented, it is comparatively easier to visualize the problem and solution in our mind.
- In many software projects, creation and implementation of entire project takes just 1/4th of total time and the maintenance of the project becomes a lengthy process thereby consuming more than 3/4th of total time. The reason behind this lengthy maintenance phase is that the project design is not efficient enough. Design Patterns eliminate this issue by decreasing the additional effort and maintenance cost by offering solutions that are very much reliable, efficient, and reusable.
- Thus the key factors behind the success of design patterns are
- (1) reusability,
- (2) reliability
- (3) efficiency due to high performance solution, and
- (4) less time consumption as the solution is well tested and ready handed.