gpt4 book ai didi

java - 为什么要返回 Iterator 低耦合 (OOP)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:50 25 4
gpt4 key购买 nike

所以我今天听说返回迭代器是比返回数组列表更好的解决方案(低耦合/松耦合)。

我有一个项目数组列表,我有一个用于此数组列表的 getter,并且想知道为什么获取迭代器比获取 java 中的数组列表更好的解决方案?

是不是因为迭代器可以根据需要转换为不同的集合?还是有更多我不知道的好处?

最佳答案

纯粹从两个类之间的松耦合或紧耦合的角度来看,它没有任何不同 - 最初我会对此持不同意见,但我将在下面解释原因。如果出于其他原因有更好的选择,这是一个不同的问题,但耦合实际上并不是其中之一。

从接口(interface)的角度来看,您有一个类 A,它引用了具有该集合的类 B。 B 返回 arraylist,这意味着它返回 java.util.ArrayList(独立于 A 或 B 的第三类)。如果您返回一个 java.util.Iterator,您还有一个独立于 A 或 B 的第三类。在这两种情况下,A 都不需要或多或少地了解 B 的内部工作原理,因此耦合保持不变。

但是,根据评论/其他答案,您可能出于其他原因更愿意返回集合(未指定实际实现)或迭代器。如果您正在创建一个公共(public) API,那么选择很重要。如果您在自己的代码内部这样做,请使用对调用者来说最简单的选择。

如果这只是类练习,请回答迭代器是松耦合的,因为它们可能无法正确区分。

关于java - 为什么要返回 Iterator 低耦合 (OOP)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37600576/

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