The C++ programming language
Applying Synthesis Principles to Create Responsive Software Systems
IEEE Transactions on Software Engineering
Object-oriented programming: an objective sense of style
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
What can we do about the unnecessary diversity of notation for syntactic definitions?
Communications of the ACM
Object-Oriented Software Construction
Object-Oriented Software Construction
Object-oriented design: a responsibility-driven approach
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
The Role of Polymorphic Reuse Mechanisms in Schema Evolution in an Object-Oriented Database
IEEE Transactions on Knowledge and Data Engineering
A case for statically executable advice: checking the law of demeter with AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
On Associations in the Unified Modelling Language
«UML» '01 Proceedings of the 4th International Conference on The Unified Modeling Language, Modeling Languages, Concepts, and Tools
Celebrating the 50th Anniversary of Lisp
Detecting missing method calls in object-oriented software
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Domain-specific program checking
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Shadow programming: reasoning about programs using lexical join point information
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Hi-index | 0.00 |
Our initial ideas on preventive maintenance of object-oriented systems were presented in [LHR88] which describes a set of guidelines called the "Law of Demeter". As a result of this publication we have received much feedback, as well as a detailed critique from [Sak89]. In this paper we expand on the initial ideas and present a new perspective with which to view the Law. This perspective is based on client/supplier relationships between methods and classes and allows a cleaner description of the benefits of the Law. This paper is also a reply to [Sak89] which was pointing out that the formulation of the Law for C++ needs additional work.At first sight, the idea of any rules or principles being superimposed on the creative mind seems more likely to hinder than to help, but this is really quite untrue in practice. Disciplined thinking focusses inspiration rather than blinkers it.