1

我正在寻找以不同方式复制对象的设计原则/模式。例如,我有以下选项来复制 ACCOUNT 类类型的对象。

1) 完全克隆

2)克隆除信用详细信息之外的所有内容

3)克隆信用逆转(否定值)等。

在所有场景中,都克隆了同一个对象;但根据客户的输入具有不同的值。我在想原型模式;但它不允许客户端控制应如何复制对象。

谢谢,

普拉迪普

4

2 回答 2

0

克隆不是一个简单的概念。你有传统的浅拷贝或深拷贝,但你可以有任何介于两者之间的东西。您可以对对象的某些字段进行浅拷贝,而对其他字段进行深拷贝(“递归克隆”)。

特定的克隆方法是应用程序的责任,这就是它不能自动化或自动生成的原因。

如果您克隆复杂的对象图,父类甚至可能会更新某些字段。所以你甚至不能将所有东西都封装在一个类的 clone 方法中。

恐怕您找不到您所描述的特定克隆模式,但是带有一些扩展名(“克隆标志”)的原型模式就可以了。

于 2012-11-27T09:37:49.137 回答
0

原型模式或可能的工厂作为更通用的解决方案。

正如我们所知,克隆只是一个副本。最常见的解决方案是按值复制、按引用复制和混合写入时复制。

克隆除信用详细信息之外的所有内容 - 就像“克隆信用”一样 - 而是创建与原始对象相关的新对象。

无论您是想在具体对象上还是在工厂中实现这些,实际上都是您任务中的当地条件问题。

于 2012-11-26T12:59:09.713 回答