gpt4 book ai didi

java - 使用 ArrayLists 保持 Demeter 法则

转载 作者:行者123 更新时间:2023-11-29 04:42:23 26 4
gpt4 key购买 nike

如果我有一个对象的 ArrayList,那么任何时候我需要调用 ArrayList 成员的任何方法时,我都需要这样做:

list.get(i).doSomething();

这看起来很可疑地违反了 Demeter 法则。我看不出有什么办法可以解决这个问题。这很好还是我应该重新考虑我如何做这样的事情。 ArrayList 是被定义为忽略 Demeter 法则的对象吗?

最佳答案

这不是违规。

如果你有课

Class A {
private B b1, b2, b3;

...

private void method() {
b1.doSomething();
b2.doSomething();
b3.doSomething();
}
}

没有违规。如果我们收集 B 的实例进入 List<B>你得到

Class A {
private List<B> listOfB;

...

private void method() {
listOfB.forEach(B::doSomething);
}
}

使用 List<B>持有 B 的实例导致 A 之间没有更紧密的耦合和 B .

关于java - 使用 ArrayLists 保持 Demeter 法则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38660167/

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