Design Patterns in the VCL -- Conclusions


Benefits of Design Patterns

Adopting the use of Design Patterns brings several advantages to a development effort:

Larger-Granularity of Reuse

  • Patterns encourage reuse of much larger pieces of a design -- typically they identify a common abstraction which applies to a handful of classes.

  • Because they are explicitly made to be tailored (e.g., Alexander's quote, "repeated a million times without ever doing it the same way twice"), patterns are less likely to be rejected as reuse candidates than code, which often "won't quite fit."

Improved Communication among Developers

  • Patterns create "chunks" of design knowledge, which developers can refer to by name, and reason about as entities.

  • When used to label design decisions, pattern names have far higher semantic density than verbose, hastily- typed annotations.

Leverage on Collective Wisdom of Wider Community

  • Pattern readers gain from the experience distilled by pattern authors

  • Tradeoffs and alternatives which the pattern reader might never discover alone are already documented.

  • Pattern readers learn to look for and fin common abstractions across disparate domains, and therefore become better designers and coders themselves.


Other Pattern Types

The patterns community (see the links page) has identified a number of other kinds of patterns and pattern forms besides the ones covered here:

Code Patterns

Some have worked to identify patterns related to such forms as coding idioms (e.g., reference-counting), code formatting , and naming standards , with the goal of increasing the "habitability" of code for those who maintain it.

Analysis Patterns

Some recent work (see Martin Fowler's book in the links page) has focused on identifying recurring contexts/problems across problem domains, rather than implementation domains. For instance, Fowler describes a pattern called Accountability which he has discovered in such apparently unrelated domains as health-care and financial derivatives trading.

Organizational Patterns

Jim Coplien and others are working to write patterns which describe the structures common to successful development organizations. They report significant success in applying these patterns to transform dysfunctional organizations into healthier ones.

Business Patterns

Unlike Analysis Patterns, business patterns document common problem-context-solution entities in a given industry or vertical market. For instance, there is a great deal of current discussion about more flexible and accurate alternatives to the double-entry bookkeeping methods: one such being the REA patterns.


[ Start Here | Top | Outline | Glossary | Links ]


These pages maintained by Tres Seaver of Palladion Software . Copyright 1998, all rights reserved.