Patterns Patterns Most of the analysis and design techniques that I talk about here are about giving you guidance on how to express an object-oriented design. Patterns look instead at the results of the process - example models. Many people have commented that projects have problems because the people on them were not aware of designs that are well-known to those who have more experience.
Patterns describe common ways of doing things.
They are collected by people who spot some repeated themes in designs they come across. They then take each of these themes and describe them so that other people can read the pattern and see how to apply it. Its easier to use an example. Say you have some objects running in a process on your desktop and they need to communicate with some other object that is running in another process, maybe on your desktop or maybe elsewhere. You don't really want the objects in your system to have to worry about finding it on the network or executing remote procedure calls.