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)