Lecture Notes for CS 325
Patterns, 13 March 2000
- idioms
- example -
while (*s++ = *p++) ;
- characteristics - language specific, specialized, obscure
- cliches
- example -
for (i = 0; i < |A|; i++) if (A[i] == x) return i;
- characteristics - language independent, general but small scale
- patterns
- example - create only one instance of an object
- characteristics - problem independent, more general but still small
scale
- parts of a pattern
- context - the place where the pattern gets used
- agents - the source of the problem
- solution - how the agents work within the context
- example - model-view-controller
- an early, famous smalltalk pattern
- context - a model having an accurate, up-to-date visual
representation
- agents - the modeler, the viewer, and the changer
- solution - agents receive notifications, react, send notifications
- history
- christopher alexander - A Pattern Language
- gamma, helm, johnson, and vlissides (the gang of four) - design
patterns: elements of reusable object-oriented software
- pattern language of programming design (plop) - bi-annual conference
- pattern types
- design patterns - common, object-oriented design structures
- architectural patterns - large scale patterns ranging over systems
- idioms - small scale patterns ranging over code
- analysis patterns, communications patterns, management patterns,...
- anti-patterns - resulting in a bad situation, clearing up a bad
situation (refactoring)
- pattern problems
- huge amounts of hype
- patterns that aren't patterns
- example - the long-name pattern
- patterns solve a specific problem
- patterns are derived from previous solution experience
- patterns significantly engage the context and the actors
- lots of mysticism and metaphysics - the quality without a name, the
timeless way
- patterns are not easy to understand and use
This page last modified on 13 March 2000.