View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Discussion 2 -- David Worsham

There are 3 varieties of design patterns: Creational, Structural, and Behavioural.

Creational patterns are "patterns for dynamically selecting the class of created objects" (1). In other words these are patterns that define particular ways of constructing and getting at objects. A good example is Factory.

Structural patterns are patterns that pertain to the overall structure of the program. They structure various aspects of the program and help to determine its overall design. A good example of this is Composite.

Behavioural patterns are patterns that pertain to algorithms and the flow of control in the program. A good example of these is Strategy.

One particular pattern that interests me is Strategy. It is a pattern that is used to encapsulate an entire algorithm. The designer can then dynamcially swap out various parts of the algorithm based on concerns such as performance, system resource availability, etc. This pattern interests me greatly because of the incredible flexibility it can provie if properly used. A good example of this could be a 3d rendering pipeline. You could encapsulate the entire pipeline as a strategy and swap out various stages, render targets, etc based on your need at that particular point in time. (2)

Sources:

1. http://c2.com/cgi-bin/wiki?DesignPatterns
2. http://c2.com/cgi-bin/wiki?StrategyPattern

Link to this Page