Wiki Home

Design Patterns


Namespace: SoftwareEng
From Design Patterns: Elements of Reusable Object - Oriented Software by Gamma and Helm et al. ISBN 0201633612 See also Gamma And Helm
By Definition:
A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object-oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It also gives implementation hints and examples. The solution is a general arrangement of objects and classes that solve the problem. The solution is customized and implemented to solve the problem in a particular context.

What is a Design Pattern?
The authors answer this question with a quote from another book, A Pattern Language by Alender, Ishikawa, et al regarding patterns in buildings and towns:

"Each pattern describes a problem which occurs over and over in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice."

In general, a pattern has four essential elements: Design Patterns are described using a consistent format which includes a Classification and Intent.

Intent is a short statement that answers the following questions:
  • What does the design pattern do?
  • What is its rational and intent?
  • What particular design issue or problem does it address?
    Classification consists of two criteria, scope and purpose. For more information see Design Pattern Classification.

    A collection of patterns is summarized by listing all the intents, grouping them by classification, and referring to it as a catalog. For an online adaption of this catalog concept that references VFP Design Patterns examples see VFP Design Pattern Catalog

    Andy Kramek has also some examples of implementing Design Patterns in VFP. There is a white paper "Implementing Design Patterns in Visual FoxPro" and example code available for download from the Tightline Computers website at http://www.tightlinecomputers.com/Downloads.htm
    For an extensive wiki devoted to Design Patterns, though somewhat flourishing well beyond that now, see http://c2.com/cgi/wiki?DesignPatterns
    An excellent starting point for developers who find the Gamma And Helm Design Patterns book a bit overwhelming is Applying UML and Patterns by Craig Larman ISBN 0137488807
    For a great in depth introduction to everything you need to know (and then some) to start learning patterns, see http://www.enteract.com/~bradapp/docs/patterns-intro.html
    Yet another Design Pattern Wiki
    Contributors: Steven Black, Michael GEmmons, Roxanne Seibert
    Category Design Patterns
  • ( Topic last updated: 2005.04.08 10:02:46 AM )