In is an software engineering, a design pattern is a general reusable solution to commonly occurring problem within the given context in the software design.
A design pattern is not finished design that can be transformed directly into the source or machine code language. It is a description for how to solve the problem that can be also used in many different situations. Patterns are also formalized best practices that the programmer can also be use to solve the common problems when the designing an application or the system. Object-oriented design patterns typically shows the relationships and interactions between the classes or objects, without specifying the final application classes or the objects that are involved. Patterns that can imply mutable state may be unsuited for the functional programming languages and some of the patterns can also be rendered unnecessary in the languages that have built-in support for solving the problem they are also trying to solve the problem and object-oriented patterns are also not necessarily suitable for the non-object-oriented languages.
Uses of the Design Patterns :
1. Design patterns can also speed up the development process by providing tested and proved development paradigms. and also Effective software design which requires the considering issues that may not be become visible until later in the implementation. Reusing the design patterns can also helps to prevent the subtle issues that can also cause major problems and improves code readability for coders and architects familiar with the patterns.
2. People only understand how to apply for certain software design techniques to the certain problems. These techniques are also difficult to apply for the broader range of the problems. Design patterns also provides the general solutions, documented in the format that doesn’t require specifics tied to a particular problem.
3. In addition, patterns allow developers to communicate using well-known and well understood names for the software interactions. Common design patterns can also be improved over the time, making them more robust.