•Patterns
provide a common language for discussing system design
•Studies
of expert programmers have shown that knowledge and experience isn’t organized
simply around syntax but in larger conceptual structures such a algorithms,
data structures, and programming idioms.
We have names and catalogs for algorithms and data
structures but not other kinds of
patterns
•Defining
patterns lets us talk at higher levels of abstraction. This higher level enables us to more easily
communicate, document, and explore alternatives