以不同方式复制对象

时间:2012-11-26 12:02:01

标签: oop design-patterns ooad

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

1)正确克隆

2)克隆所有信用额度除外

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

在所有场景中,克隆了相同的对象;但根据客户的输入使用不同的值。 我在想原型模式;但它不允许客户端控制对象的复制方式。

谢谢,

Pradeep

2 个答案:

答案 0 :(得分:0)

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

克隆完全只是我们所知道的副本。最常见的解决方案是按值复制,按引用复制和混合写时复制。

克隆除信用详细信息之外的所有信息 - 如“信用克隆” - 而不是创建与原始信息相关的新对象。

是否要在具体对象或工厂中实现任何这些实际上是您的任务中的当地条件问题。

答案 1 :(得分:0)

克隆不是一个简单的概念。你有传统的浅拷贝或深拷贝,但你可以在它们之间有任何东西。你可以浅深地复制一个对象的某个字段,同时深度复制(“递归克隆”)其他字段。

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

如果克隆复杂的对象图,甚至可能会由父类更新某些字段。因此,您甚至无法将所有内容封装在一个类的clone方法中。

我担心你找不到你所描述的具体克隆模式,但带有一些扩展的原型模式('克隆标志')就可以了。