An example of a software design pattern for European option pricing using UML diagrams
Design Patterns were first introduced in the seminal book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, who are collectively known as the "Gang of Four" [Gamma et al. (1994)]. This book forms the foundation of Object-Oriented design theory and practice. A Design Pattern is a general, reusable solution to a commonly occurring problem in software design. These patterns are based on the philosophy of finding standard solutions to common problems in software engineering challenges.
Just as there are standard designs for car engines, like the four-stroke engine, design patterns serve a similar purpose in software. Each pattern provides a tried-and-true solution to a specific problem. Some of these patterns focus on object creation, others on structuring systems of objects, and still others on how objects should communicate.


