From Design Patterns: Elements of Reusable Object - Oriented Software by Gamma and Helm et al. ISBN 0201633612 See also Gamma And Helm
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:
1. The pattern name is a handle we can use to describe a design problem, its solutions, and consequences in a word or two.
Design Patterns are described using a consistent format which includes a Classification and Intent.
2. The problem describes when to apply the pattern.
3. The solution describes the elements that make up the design, their relationships, responsibilities, and collaborations. The pattern provides an abstract description of a design problemand how a general arrangement of elements (classes and objects in our case) solves it.
4. The consequences are the results and trade-offs of applying the pattern.
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 )