Object-oriented Programming in C# Reference types, Value types, and Patterns
Design Patterns
A pattern is a named nugget of instructive information that captures the essential structure
and insight of a successful family of proven solutions to a recurring problem that arises within
a certain context and system of forces [Brad Appleton]
Worth noticing
Named: Eases communication about problems and solutions
Nugget: Emphasizes the value of the pattern
Recurring problem: A pattern is intended to solve a problem that tends to reappear.
Proven solution: The solution must be proven in a number of existing programs
Nontrivial solution: We are not interested in collecting trivial and obvious solutions
Context: The necessary conditions and situation for applying the pattern
Forces: Considerations and circumstances, often in mutual conflict with each other