Coupling of design patterns: common practices and their benefits

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.

[1]  Kazuo Ushijima,et al.  Applying design patterns to decision tree learning system , 1998, SIGSOFT '98/FSE-6.

[2]  Phillip M. Yelland,et al.  Creating host compliance in a portable framework: a study in the reuse of design patterns , 1996, OOPSLA '96.

[3]  James W. Cooper,et al.  Using design patterns , 1998, CACM.

[4]  Tommi Mikkonen,et al.  Formalizing design patterns , 1998, Proceedings of the 20th International Conference on Software Engineering.

[5]  Klaus Quibeldey-Cirkel,et al.  Using Patterns for Design and Documentation , 1997, ECOOP.

[6]  Silvia E. Gordillo,et al.  Generating the architecture of GIS applications with design patterns , 1997, GIS '97.

[7]  Linda Rising,et al.  Non-software examples of software design patterns , 1997, OOPSLA '97.

[8]  Dung Nguyen Design patterns for data structures , 1998, SIGCSE '98.

[9]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[10]  Dirk Riehle Composite design patterns , 1997, OOPSLA '97.

[11]  Danny B. Lange,et al.  Interactive visualization of design patterns can help in framework understanding , 1995, OOPSLA.

[12]  Shan Barkataki,et al.  Reengineering a Legacy System Using Design Patterns and Ada-95 Object-Oriented Features , 1998, SIGAda.

[13]  Douglas C. Schmidt,et al.  Using design patterns to develop reusable object-oriented communication software , 1995, CACM.

[14]  Marshall Cline The pros and cons of adopting and applying design patterns in the real world , 1996, CACM.

[15]  Ralph Johnson,et al.  A framework for network protocol software , 1995, OOPSLA.

[16]  Shan Barkataki,et al.  Reengineering a legacy system using design patterns and Ada-95 object-oriented features , 1998 .

[17]  Hans Albrecht Schmid Creating the architecture of a manufacturing framework by design patterns , 1995, OOPSLA.