A programmer's guide to object-oriented programming in Common LISP
A programmer's guide to object-oriented programming in Common LISP
The Xerox Star: A Retrospective
Computer
Lisp and Symbolic Computation
Object-oriented modeling and design
Object-oriented modeling and design
Designing object-oriented software
Designing object-oriented software
A book of object-oriented knowledge: object-oriented analysis, design and implementation, a new approach to software engineering
BOOKTWO of object-oriented knowledge: the working object: object-oriented software engineering: methods and management
Working with interface metaphors
Human-computer interaction
Pattern languages of program design
Pattern languages of program design
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Pattern languages of program design 2
Pattern languages of program design 2
Patterns of software: tales from the software community
Patterns of software: tales from the software community
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Pattern languages of program design 3
Pattern languages of program design 3
How to preserve the benefits of design patterns
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Problem frames: analyzing and structuring software development problems
Problem frames: analyzing and structuring software development problems
Object-Oriented Software Construction
Object-Oriented Software Construction
A Theory of Objects
Human-Computer Interaction
Design Patterns and Language Design
Computer
Symmetry Breaking in Software Patterns
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
Predicate Dispatching: A Unified Theory of Dispatch
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Teaching the evaluation of object-oriented designs
ACE '03 Proceedings of the fifth Australasian conference on Computing education - Volume 20
Building objects out of Plato: applying philosophy, symbolism, and analogy to software design
Communications of the ACM
The reification of metaphor as a design tool
ACM Transactions on Computer-Human Interaction (TOCHI)
Modeling from a semiotic perspective
MIS '05 Proceedings of the 2005 symposia on Metainformatics
Hi-index | 0.02 |
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.