我有一个Cell
类型的数组。这是一个2D数组。
根据某些条件,我可能需要调整此数组的大小,并将Cell
个对象向下/向右/向左移动一行或一列。
我正在考虑使用原型模式将原始数组复制到另一个更大的数组中。
这是否比单纯调整数组大小提供了更多好处?
编辑:我意识到我没有提到我的意图。我真的不需要另一个对象。我只想根据某些条件使用更大的阵列。
答案 0 :(得分:1)
这可能有帮助的唯一原因是,如果您要制作浅副本:复制可以节省创建新对象的成本。另一方面,数组中的所有Cell
个对象将在多个2D数组之间共享;如果这出现问题,你应该从头开始创建数组。
答案 1 :(得分:1)
简短回答编号
有一种替代解决方案可以在不需要原型的情况下解决您的问题。
不要将单元格存储在数组中。 单元格不知道它们的行号和列号,而是询问行/列。 这样就可以重新排列列,而无需更新每个项目。
有一个表示数组的容器对象,可以返回给定(x,y)坐标处的单元格。如果数组是sparce(或者它具有合理的默认值),则将缺少的单元格视为默认单元格。这将大大降低存储成本。 列和行属于容器。现在添加空行或列会成为插入行或列对象的情况。