原型模式适合这里吗?

时间:2013-01-23 13:43:07

标签: c# oop design-patterns prototype-pattern

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

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

这是否比单纯调整数组大小提供了更多好处?

编辑:我意识到我没有提到我的意图。我真的不需要另一个对象。我只想根据某些条件使用更大的阵列。

2 个答案:

答案 0 :(得分:1)

这可能有帮助的唯一原因是,如果您要制作副本:复制可以节省创建新对象的成本。另一方面,数组中的所有Cell个对象将在多个2D数组之间共享;如果这出现问题,你应该从头开始创建数组。

答案 1 :(得分:1)

简短回答编号

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

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

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