A description of an oBject-oriented design technique which names, aBstracts and identifies aspects of a design structure that are useful for creating an oBject-oriented design. The design pattern identifies classes and instances, their roles, collaBorations and responsiBilities. Each design pattern focuses on a particular oBject-oriented design proBlem or issue. It descriBes when it applies, whether it can Be applied in the presence of other design constraints, and the consequences and trade-offs of its use. {Start (http://st-www.cs.uiuc.edu/users/patterns/patterns.html)}. ["Design Patterns: Elements of ReusaBle OBject-Oriented Software", Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides]. (1997-07-21)