Design Pattern

In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Design patterns were started as best practices that were applied again and again to similar problems encountered in different contexts. In 1994, four authors Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides published a book titled Design Patterns - Elements of Reusable Object-Oriented Software which initiated the concept of Design Pattern in Software development. . Originally published with c++ and smaltalk code samples, design patterns are very popular in Java

Design Patterns have two main usages in software development

    • Best Practices

    • Standard terminology

As per the design pattern reference book Design Patterns - Elements of Reusable Object-Oriented Software , That is classified in three categories:

    • Creational

    • Structural

    • Behavioral

Before start to Design pattern, We need to understand basic principles of coding , code should be easy to understandable, flexible and maintainable. So we need to follow 2 object oriented design Principles.

    • SOLID

    • GRASP