As it this is defined, Design patterns are solution to common software development issues in OOP.
Elaborately design patterns are evolved from practices of resolving issues identified
during or post development of OOP systems.
So following a pattern will save you future embarrassment in development.
----------------------------------------------------------------------------------------------------------
"Head first design patterns" books has very interesting examples for further reading.