Douglas C. Schmidt on kirjottanu lyhyen johdannon suunnittelumallien (design pattern) maailmaan. Siinä on hyvä analogia, suoraan lainaten:
Becoming a Chess Master:
- First learn the rules
- e.g., names of pieces, legal movements, chess board geometry and orientation, etc.
- Then learn the principles
- e.g., relative value of certain pieces, strategic value of center squares, power of a threat, etc.
- However, to become a master of chess, one must study the games of other masters
- These games contain patterns that must be understood, memorized, and applied repeatedly
- There are hundreds of these patterns
Becoming a Software Design Master
- First learn the rules
- e.g., the algorithms, data structures and languages of software
- Then learn the principles
- e.g., structured programming, modular programming, object oriented programming, generic programming, etc.
- However, to become a master of software design, one must study the designs of other masters
- These designs contain patterns that must be understood, memorized, and applied repeatedly
- There are hundreds of these patterns
Douglas C. Schmidt: Introduction to Design Patterns