Courtesy: Scott Bain.
Often it is thought that Design patterns are a set of tools that helps to solve a problem. If one pattern does not provide the solution then it would be another, and so on until we keep finding the right pattern. But that is a wrong interpretation for how the design pattern needs to be identified for use. The right way of identification would be to carefully observe the problem in hand, which would reveal the pattern in itself. And this would be the best way to identify the pattern to use for solving the problem.
But how exactly are Design patterns helpful in the design of software?
Design patterns are a high level thought process for solving the problem, abstracting the implementation details which make the problem at hand more approachable thereby depriving the right design.
So what does Design pattern exactly help with?
The Design patterns are helpful to bring the risks salient enough for one to decide on how to approach a solution.