2012-11-26 41 views
1

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

1)克隆究竟

2)克隆所有除了信用细节

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

在所有的方案中,相同的对象是克隆;但基于客户的输入具有不同的值。 我正在考虑Prototype模式;但它不允许客户端控制如何复制对象。

谢谢,

普拉迪普

+0

为什么你想使用模式/原则只是克隆/复制一个对象? –

回答

0

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

克隆正好只是我们所知道的副本。最常见的解决方案是按值复制,通过引用复制和混合写入复制。

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

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

0

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

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

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

恐怕你不会找到你描述的具体克隆模式,但带有一些扩展名的'Prototype模式'('克隆标志')就没问题。