Derived from architecture originally and now applied in software designing, design patterns are reusable best practices that are adopted as short cuts to solve new emergent problems. A general framework is developed by experienced developers and explained in detailed steps with hints to aid its application.
Diagrams

Originated from/Coined by
Christopher Alexander
Further Reading/ References
https://en.wikipedia.org/wiki/Design_pattern
https://www.geeksforgeeks.org/software-design-patterns/
https://sourcemaking.com/design_patterns/abstract_factory
