原型图案是否适合这里

本文关键字:这里 是否 型图 原型 | 更新日期: 2023-09-27 17:55:32

我有一个类型为 Cell 的数组。这是一个 2D 数组。根据某些条件,我可能必须调整此数组的大小并将Cell对象向下/向右/向左移动一行或一列。

我正在考虑使用原型模式将原始数组复制到另一个更大的数组中。

与简单地调整数组大小相比,这是否提供更多好处?

编辑:我意识到我没有提到我的意图。我真的不需要另一个对象。我只想要一个基于某些条件的更大数组。

原型图案是否适合这里

这可能有帮助的唯一原因是如果您正在制作拷贝:复制将节省创建新对象的成本。另一方面,数组内的所有Cell对象都将在多个 2D 数组之间共享;如果这会带来问题,您应该回到从头开始创建数组。

简答否

有一种替代解决方案可以在不需要原型的情况下解决您的问题。

不要将单元格存储在数组中。单元格不知道它们的行号和列号,而是向行/列询问它。这允许重新排列列,而无需更新每个项目。

具有表示数组的容器对象,并且可以在给定的 (x,y) 坐标处返回单元格。如果数组是 sparce(或者如果它有一个合理的默认值),则将缺少的单元格视为默认值。这将大大降低存储成本。列和行属于容器。现在,添加空行或空列变成了插入行或列对象的情况。