Metaphor and Metonymy in Object-Oriented Design Patterns

The key principle of object-oriented design is that each program object should correspond to an object in the real world, that is to say, a program is a metaphor for the world. More advanced object-oriented designs, such as many of Gamma et. al.'s Design Patterns, are not directly metaphorical: State objects, Strategy objects and Visitor objects, for example, do not correspond to objects in the real world. We show how these patterns, and other similar designs, can be understood as metonymy, rather than metaphor, that is, they are based on an attribute, cause, or effect, rather than being based on something in the world, in terms of Jakobson and Lodge's typology. Understanding how both metaphor and metonymy can be used in design can illustrate how design patterns work alongside more traditional object-oriented modelling to produce designs that are accurate, flexible, and better understood.

[1]  Dirk Riehle,et al.  Pattern Languages of Program Design 3 , 1997 .

[2]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[3]  Craig S. Kaplan,et al.  Predicate Dispatching: A Unified Theory of Dispatch , 1998, ECOOP.

[4]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[5]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[6]  David William Brown An introduction to object-oriented analysis : objects and UML in plain English , 2002 .

[7]  S. E. Keene,et al.  A programmer's guide to object-oriented programming in Common LISP , 1988 .

[8]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[9]  James Coplien,et al.  Symmetry Breaking in Software Patterns , 2000, GCSE.

[10]  Richard P. Gabriel,et al.  Patterns of Software: Tales from the Software Community , 1996 .

[11]  Randall B. Smith,et al.  SELF: The power of simplicity , 1991 .

[12]  Joseph Gil,et al.  Design Patterns and Language Design , 1998, Computer.

[13]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[14]  Brian Henderson-Sellers,et al.  Booktwo of Object-Oriented Knowledge: The Working Object : Object-Oriented Software Engineering : Methods and Management , 1994 .

[15]  Randall B. Smith Experiences with the Alternate Reality Kit: An Example of the Tension between Literalism and Magic , 1987, IEEE Computer Graphics and Applications.

[16]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[17]  Brian Henderson-Sellers,et al.  A Book Of Object-Oriented Knowledge , 1992 .

[18]  Tim Thompson,et al.  Keynote - A Language and Extensible Graphics Editor for Music , 1990, Comput. Syst..

[19]  Ellen Agerbo,et al.  How to preserve the benefits of design patterns , 1998, OOPSLA '98.

[20]  Tom Wrensch,et al.  Squeak - a quick trip to ObjectLand , 2001 .

[21]  Thomas Erickson,et al.  Working with interface metaphors , 1995 .

[22]  Michael A. Jackson,et al.  Problem Frames - Analysing and Structuring Software Development Problems , 2000 .

[23]  Umberto Eco,et al.  A theory of semiotics , 1976, Advances in semiotics.

[24]  Oscar Wilde,et al.  The original four-act version of The importance of being earnest : a trivial comedy for serious people , 2020 .

[25]  James O. Coplien,et al.  Symmetry and Symmetry Breaking in Software Patterns , 2000 .

[26]  Brad A. Myers,et al.  The P rototype-Instance Object Systems in Amulet and Garnet , 1998 .

[27]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[28]  Jeff A. Johnson,et al.  The Xerox Star: a retrospective , 1989, Computer.

[29]  James O. Coplien,et al.  Pattern languages of program design , 1995 .