Java 迭代集合时数据累积的设计

Java 迭代集合时数据累积的设计,java,oop,design-patterns,collections,software-design,Java,Oop,Design Patterns,Collections,Software Design,我收集了大量的元素。 我想迭代它并积累一些特定的值(比如10个值)。 我想知道是否有一个很好的方法可以在软件设计方面做到这一点 我希望积累数据,然后创建一个最终的对象,该对象由积累的数据组成(不可变对象)。 是否有一个好的设计模式用于此目的 这里的“构建器”不好,因为我想在迭代集合时更改值 非常感谢 构建器模式就是您要寻找的。您将累积的数据存储到构建器对象中,完成后,请构建器根据累积的所有数据创建不可变对象 如果您没有更具体的用例,就很难给出更具体的示例 例如,你可以使用(我已经链接了一篇博客文

我收集了大量的元素。 我想迭代它并积累一些特定的值(比如10个值)。 我想知道是否有一个很好的方法可以在软件设计方面做到这一点

我希望积累数据,然后创建一个最终的对象,该对象由积累的数据组成(不可变对象)。 是否有一个好的设计模式用于此目的

这里的“构建器”不好,因为我想在迭代集合时更改值


非常感谢

构建器模式就是您要寻找的。您将累积的数据存储到构建器对象中,完成后,请构建器根据累积的所有数据创建不可变对象

如果您没有更具体的用例,就很难给出更具体的示例

例如,你可以使用(我已经链接了一篇博客文章,但是你可以通过谷歌找到大量信息)


当构造函数中有很多参数时,就会使用此模式,这使得在Java中调用和维护构造函数非常麻烦。当您希望在正在构建的类中保留不变量时,尤其需要使用它(否则,可以使用setter方法配置类)。有一种情况是,当您拥有不可变的对象时,这就是您的情况。

我对构建器很熟悉。虽然构建器实际上并没有积累数据,但它只是让您在创建最终对象之前修改许多字段。我想在迭代过程中修改这些值collection@VitaliMelamud如果您有一个构建器,您可以在迭代时修改构建器对象中的值(您可以向构建器添加getter方法以促进此操作);当你完成迭代后,你可以让生成器创建不可变的对象。你认为生成器中的getter是个好主意吗?没有看到这个扩展anywhere@VitaliMelamud冒着进入“主观”领域的风险——我在几个项目上做过这件事,结果很好——每个人都理解这件事,维护这样的代码没有问题。我对构建者很熟悉。虽然构建器实际上并没有积累数据,但它只是让您在创建最终对象之前修改许多字段。我想在迭代集合时修改这些值。生成器会执行您希望它执行的任何操作。如果一个不可变列表的构建器(比如我链接到的构建器)没有积累要构建的不可变列表的所有元素,它怎么能工作呢?这个例子真是太棒了!但是,您认为为用户提供一个界面,以便在设置构建器成员后对其进行修改是一个好主意吗?也就是说,对于整数成员,让用户为其添加一些值,并让其从中减去……如果您的用例需要该功能,并且如果您认为这是设计该功能的最佳方式,为什么不呢?