Design Patterns: Abstraction and Reuse of Object-Oriented Design

  • Authors:
  • Erich Gamma;Richard Helm;Ralph E. Johnson;John M. Vlissides

  • Affiliations:
  • -;-;-;-

  • Venue:
  • ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
  • Year:
  • 1993

Quantified Score

Hi-index 0.03

Visualization

Abstract

We propose design patterns as a new mechanism for expressing object-oriented design experience. Design patterns identify, name, and abstract common themes in object-oriented design. They capture the intent behind a design by identifying 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 by naming and defining abstractions, 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.