Design Patterns

Design patterns are similar to frameworks, but more amorphous. Rather than being an actual set of classes, a design pattern is similar a description of a relationship between several classes that has proven to be useful in the solution of a past problem, and is hence likely to prove useful in future problems. Design patterns are not actual code, but are simply language indepenent descriptions of relationships.

An example family of patterns might be the ``standing in place of'' concept, where a client interacts with an intermediary, but the intermediary is not actually performing the work, but is instead hiding a connection to the agent that is actually providing a service. For example, an intermediary might hide a network connection, so that the client can think they are interacting directly with a server, and need not think about the network details.

[audio] [real] Text to accompany slide7, in Chapter 18 of An Introduction to Object-Oriented Programming