Design patterns form a cohesive language that can
be used to describe classic solutions to common object oriented design
problems. These patterns enable us to discuss systems of
objects as quasi-encapsulated entities. By using design
patterns to solve programming problems, the proper perspective on the
design process can be maintained.
These pattern discussions, except for the Null and
Model-View-Controller patterns are adapted from the classic text,
Design Patterns by Gamma, Helm, Johnson and
Vlissides (Addison Wesley Longman, 1995.
ISBN 0-201-63361-2). Anyone serious about learning object
oriented programming should own this book.