让我们从维基百科开始:
更正式地说,函数的得墨忒耳定律要求对象O的方法m只能调用以下类型对象的方法:
- O本身
- m的参数
- 在 m 中创建/实例化的任何对象
- O 的直接组件对象
- 一个全局变量,可以被 O 访问,在 m 范围内
规则1:
public class ClassOne {
public void method1() {
method2();
}
public void method2() {
}
}
规则 2:
public class ClassOne {
public void method1(ClassTwo classTwo) {
classTwo.method2();
}
}
class ClassTwo {
public void method2() {
}
}
规则 3:
public class ClassOne {
public void method1() {
ClassTwo classTwo = new ClassTwo();
classTwo.method2();
}
}
class ClassTwo {
public void method2() {
}
}
规则 4(感谢@juharr):
public class ClassOne {
private ClassTwo classTwo;
public void method1() {
classTwo = new ClassTwo();
classTwo.method2();
}
}
class ClassTwo {
public void method2() {
}
}
规则 5:
?
任何人都可以帮我解决第 5 条规则吗?
德墨忒耳法则不是暗示链接是不好的吗?
User.getName().getLastName();
这导致高耦合。
“告诉,不要问”不是类似的原则吗?
这就是一切吗?我错了吗?你怎么能遵守得墨忒耳法则?