gpt4 book ai didi

java - Demeter Law - 在不同类的另一个方法中调用一个类的方法

转载 作者:行者123 更新时间:2023-11-30 02:20:58 25 4
gpt4 key购买 nike

如果我有一个包含方法 f 的类 C,该方法将 D 类型的对象(我定义的另一个类)作为参数

如果我在方法f中调用对象D的方法,是否会违反得墨忒耳定律?为什么?

例如:

public C {
public void f(D object) {
int x = object.sumOfNumbers(2,3);
}
}

最佳答案

这个调用并不违反德墨忒尔定律。要违反它,您需要执行以下操作:

In this case, an object A can request a service (call a method) of an object instance B, but object A should not "reach through" object B to access yet another object, C, to request its services

来源:Wikipedia

您没有到达代码中的对象 C。

使用维基百科中使用的类名(A、B、C),您的问题代码应如下所示:

public class A {
public void f(B object) {
int x = object.sumOfNumbers(2,3);
}
}

此处没有您正在访问的 C 类。

以下是违反该法律的行为:

public class A {
public void f(B object) {
C myC = object.getC();
int x = myC.sumOfNumbers(2,3);
}
}

关于java - Demeter Law - 在不同类的另一个方法中调用一个类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46833654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com