I made a change in the blogger configuration to ease the later work when blogging. It is possible that older entries are not correctly formatted.

Friday 11 January 2008

Design Patterns

Since I have read the Gamma et al. book on design patterns, I tend to see most of the programming techniques as a set of design patterns which one combines with one another. There are many useful design patterns and the categorisation given in the Gamma book is at least useful to get an overview of these relevant design patterns:
  • creational patterns
  • structural patterns
  • behavioral patterns
The description of each of the design patterns follows a simple structure:
  • Intent (succint description of the intent of the design pattern)
  • Other Names (other names which have been given to this pattern)
  • Motivation (gives a description of the type of problem for which this pattern can be used)
  • Applicability (gives a summary of the main guidelines when to use the pattern)
  • Structure (gives a UML description of the overall structure of the pattern)
  • Participants ( a description of the main elements or classes used in the structure)
  • Collaboration (describes how the elements are used in cooperation with the others)
  • Consequences (the main consequences of the use of the pattern)
  • Implementation (a description of how to implement the pattern in a sensible way)
  • Sample Code ( some sample code of the use and of the implementation)
  • Known Uses (some example where this pattern has been used effectively)
  • Related Patterns ( explains the relation this pattern has to other patterns)