因此,我今天听说,与返回数组列表相比,返回迭代器是更好的解决方案(低耦合/松散耦合)。

我有一个项目的arraylist,这个arraylist有一个吸气剂,并且想知道为什么在Java中获得迭代器比获得arrayList更好?

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

最佳答案

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

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

但是,对于每个注释/其他答案,还有其他一些原因可能导致您可能希望返回Collection(未指定实际实现)或Iterator。如果要创建公共API,则选择很重要。如果您在自己的代码内部执行此操作,请使用对调用方最简单的选择。

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

09-26 00:57
查看更多