1988 · 170 citations · 13 references
Software MaintenanceEngineeringSoftware SystemsSoftware EngineeringObject OrientationSoftware AnalysisLanguage Independent RuleCompilersProgramming LanguagesObject-oriented DesignProgramming Language TheoryDesignProgramming Language ImplementationComputer ScienceExtensible LanguageSoftware DesignProgramming Language DesignOperating SystemsProgram AnalysisAutomated ReasoningFormal MethodsObject-oriented ProgrammingSystem SoftwareStructural Induction
We introduce a simple, programming language independent rule (known in-house as the Law of Demeter™) which encodes the ideas of encapsulation and modularity in an easy to follow form for the object-oriented programmer. You tend to get the following related benefits when you follow the Law of Demeter while minimizing simultaneously code duplication, the number of method arguments and the number of methods per class: Easier software maintenance, less coupling between your methods, better information hiding, narrower interfaces, methods which are easier to reuse, and easier correctness proofs using structural induction. We discuss two important interpretations of the Law (strong and weak) and we prove that any object-oriented program can be transformed to satisfy the Law. We express the Law in several languages which support object-oriented programming, including Flavors, Smalltalk-80, CLOS, C++ and Eiffel.
13
Proof of correctness of data representations
C. A. R. Hoare · Acta Informatica · 1972 · 964 citations
Common Lisp Object System specification
Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel et al. · ACM SIGPLAN Notices · 1988 · 380 citations
Generic Function Object, Engineering, Software Engineering +18
An introduction to Trellis/Owl
Craig Schaffert, Topher Cooper, Bruce Bullis et al. · ACM SIGPLAN Notices · 1986 · 273 citations