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)