Design Patterns as Named Solutions¶
Patterns are named solutions to recurring problems in a context, providing shared vocabulary and proven structure without prescribing implementation.
Tension Addressed¶
YAGNI vs. Extensibility
Recognizable As¶
Creational patterns (abstracting instantiation), structural patterns (composing objects), behavioral patterns (distributing responsibility); pattern names in design discussions
Canonical Sources¶
Gamma et al., "Design Patterns" (1994); Alexander, "A Pattern Language" (1977)
Transfers To¶
Architecture Patterns, Enterprise Integration Patterns, UI Patterns, Concurrency Patterns
The value is threefold: shared vocabulary accelerates communication, patterns encode proven solutions to recurring problems, and pattern descriptions include applicability guidance (when NOT to use them).
Representative pattern concepts: - Strategy: Encapsulate interchangeable algorithms - Observer: Decouple event producers from consumers - Factory: Abstract object creation from usage - Adapter: Convert incompatible interfaces - Decorator: Add responsibilities dynamically