Design Patterns: 15 Years After the Revolution, by Danny Kalev @ InformIT [2009-10-30] - 1 views
-
by defining a description template that included among the rest: Known uses. Sample code (as opposed to a typical algorithm which were often described in plain English and perhaps a few sketchy lines of pseudo-code). Collaboration (A description of how classes and objects used in the pattern interact with each other). Consequences (results and side-effects). Related patterns.
-
Would a 2009 catalog of the 23 classic design patterns look much different? According to the authors of Design Patterns: Elements of Reusable Code, the answer is no.
-
The authors would reclassify certain patterns and omit a few of the original patterns but the design and implementation would remain pretty much the same: "We have found that the object-oriented design principles and most of the patterns haven't changed since then" says Erich Gamma. You can't escape the feeling that patterns are frozen in time
- ...2 more annotations...
-
In the meantime, in the C++ world the tide has turned towards a completely different paradigm known as generic programming (and to some extent, functional programming). Instead of plain classes and a complex inheritance chain, C++ these days uses templates, meta-programming and static type checking. The C++ Standard Library is the most prominent showpiece of the generic and functional programming idioms.
-
Over-engineering is another source of criticism. Programmers who become acquainted with patterns are often tempted to solve every problem using a pattern, even when a much simpler solution would probably be a better choice.