【发布时间】:2014-11-16 08:25:51
【问题描述】:
我有很多元素。 我想迭代它并积累一些特定的值(比如说大约 10 个值)。 我想知道是否有一个明智的软件设计方法。
我想累积数据,然后创建一个包含累积数据的最终对象(不可变对象)。 是否有用于此目的的良好设计模式?
“生成器”在这里不好,因为我想在迭代集合时更改值。
非常感谢!
【问题讨论】:
标签: java oop design-patterns collections software-design
我有很多元素。 我想迭代它并积累一些特定的值(比如说大约 10 个值)。 我想知道是否有一个明智的软件设计方法。
我想累积数据,然后创建一个包含累积数据的最终对象(不可变对象)。 是否有用于此目的的良好设计模式?
“生成器”在这里不好,因为我想在迭代集合时更改值。
非常感谢!
【问题讨论】:
标签: java oop design-patterns collections software-design
您可以使用Builder design pattern(我已经链接了一篇博文,但您可以通过 Google 找到大量信息)。
当构造函数中有很多参数时使用此模式,这使得在 Java 中调用和维护构造函数很麻烦。当您想在正在构建的类中保留不变量时,它特别有用(否则,可以使用 setter 方法配置类)。一种情况是,当您拥有不可变对象时,就是您的情况。
【讨论】:
构建器模式正是您所寻找的。您将累积的数据存储到构建器对象中,完成后,要求构建器根据其累积的所有内容创建不可变对象。
如果没有您提供更具体的用例,很难给您提供更具体的示例。
例如,请参阅here 的这种模式。
【讨论】: