Coupling of Design Patterns: Common Practices and Their Benefits

  • Authors:
  • William B. McNatt;James M. Bieman

  • Affiliations:
  • -;-

  • Venue:
  • COMPSAC '01 Proceedings of the 25th International Computer Software and Applications Conference on Invigorating Software Development
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

Object-oriented (OO) design patterns define collections of interconnected classes that serve a particular purpose. A design pattern is a structural unit in a system built out of patterns, not unlike the way a function is a structural unit in a procedural program or a class is a structural unit in an OO system designed without patterns. When designers treat patterns as structural units, they become concerned with issues such as coupling and cohesion at a new level of abstraction. We examine the notion of pattern coupling to classify how designs may include coupled patterns. We find many examples of coupled patterns; this coupling may be "tight" or "loose", and provides both benefits and costs. We qualitatively assess the goodness of pattern coupling in terms of effects on maintainability, factorability, and reusability when patterns are coupled in various ways.