有一些面向对象的工程原理,它表达了一句话:"一个类只应该知道它作为参数所使用的类的合同,或者它所使用的任何内部合同."
反例,在C++中,是:
Foo::bar( Baz* baz) { baz()->blargh()->pants()->soil(); // this is bad, Foo knows about blarghs and pants }
这个原则有名字吗?而且,实际原则而不是我上面的释义会很高兴看到.
该得墨忒耳定律 感谢吉姆·伯格说:
Demeter法则(LoD)或最小知识原理是开发软件,特别是面向对象程序的设计指南.该指南是在1987年底在东北大学发明的,可以简洁地概括为"只与你的直接朋友交谈."基本概念是一个给定的对象应该尽可能少地假设其他任何东西的结构或属性. (包括其子组件).