If any problem is coming again and again in some environment, then Design Pattern provides a pointer to resolve that problem
We have already solved solutions as "Ready Made" available for the repetitive problems, not only for software but also for all the problems in the world.
When you plug your TV set to a socket in the wall, instead of peeling off the cables and connecting them to two hot wires sticking out of the wall, you are using a pattern. Using patterns is easier than reinventing the wheel. It has always been easier to use an existing wheel than invent one from scratch.So we should use Design Patterns because of following benefits.
Design patterns have two major benefits. First, they provide you with a way to solve issues related to software development using a proven solution. The solution facilitates the development of highly cohesive modules with minimal coupling. They isolate the variability that may exist in the system requirements, making the overall system easier to understand and maintain. Second, design patterns make communication between designers more efficient. Software professionals can immediately picture the high-level design in their heads when they refer the name of the pattern used to solve a particular issue when discussing system design.
Design patterns offer the best possible and time tested slution for a known problem which software programmers usually try to solve.Think of a common problem, only one instance must exist, and so Singleton pattern comes for best possible solution.
Provide a common behavior for all user requests. Pattern is modelling to your program.
Please have a look at below article. It may help in understanding the concept.
Different pattern gives us a way of solution in different style with some different functionality including coding efficiency and time consuming matter.
WHEN WE HAVE A PROBLEMS IN CODINGS WE CAN USE THESE DESIGN PATTERNS JUST BY DIVIDING THE PROBLEMS INTO SMAILER PROBLEMS KNOWN AS DECOMPOSITION,INHERITENCE ETC