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)