Design Patterns: Abstraction and Reuse of Object-Oriented Design [chapter]

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
2002 Software Pioneers  
We propose design patterns as a new mechanism for expressing object-oriented design experience. Design patterns identify, name, and abstract common themes in objectoriented design. They capture the intent behind a design by i d e n tifying objects, their collaborations, and the distribution of responsibilities. Design patterns play many roles in the object-oriented development process: they provide a common vocabulary for design, they reduce system complexity b y naming and de ning
more » ... they constitute a base of experience for building reusable software, and they act as building blocks from which more complex designs can be built. Design patterns can be considered reusable micro-architectures that contribute to an overall system architecture. We describe how to express and organize design patterns and introduce a catalog of design patterns. We also describe our experience in applying design patterns to the design of object-oriented systems. ? Work performed while at UBILAB, A design pattern consists of three essential parts:
doi:10.1007/978-3-642-59412-0_40 fatcat:wghavkjoszhm3lcsq7xoamxvlq