Software → Software Design
Design Pattern
A named, reusable approach to a recurring software design problem in a particular context.
Design Pattern
A design pattern is a reusable description of a design problem, its context, and a proven structure for solving it. Patterns provide a vocabulary for discussing designs such as Strategy, Adapter, Observer, Factory, and Repository.
Use patterns as tools
A pattern is not a goal. Apply one when its trade-offs fit the problem and the team benefits from the shared structure. Premature pattern use can add indirection, obscure simple behavior, and make code harder to change.