我正在寻找以不同方式复制对象的设计原则/模式。例如,我有以下选项来复制 ACCOUNT 类类型的对象。
1) 完全克隆
2)克隆除信用详细信息之外的所有内容
3)克隆信用逆转(否定值)等。
在所有场景中,都克隆了同一个对象;但根据客户的输入具有不同的值。我在想原型模式;但它不允许客户端控制应如何复制对象。
谢谢,
普拉迪普
我正在寻找以不同方式复制对象的设计原则/模式。例如,我有以下选项来复制 ACCOUNT 类类型的对象。
1) 完全克隆
2)克隆除信用详细信息之外的所有内容
3)克隆信用逆转(否定值)等。
在所有场景中,都克隆了同一个对象;但根据客户的输入具有不同的值。我在想原型模式;但它不允许客户端控制应如何复制对象。
谢谢,
普拉迪普
克隆不是一个简单的概念。你有传统的浅拷贝或深拷贝,但你可以有任何介于两者之间的东西。您可以对对象的某些字段进行浅拷贝,而对其他字段进行深拷贝(“递归克隆”)。
特定的克隆方法是应用程序的责任,这就是它不能自动化或自动生成的原因。
如果您克隆复杂的对象图,父类甚至可能会更新某些字段。所以你甚至不能将所有东西都封装在一个类的 clone 方法中。
恐怕您找不到您所描述的特定克隆模式,但是带有一些扩展名(“克隆标志”)的原型模式就可以了。
原型模式或可能的工厂作为更通用的解决方案。
正如我们所知,克隆只是一个副本。最常见的解决方案是按值复制、按引用复制和混合写入时复制。
克隆除信用详细信息之外的所有内容 - 就像“克隆信用”一样 - 而是创建与原始对象相关的新对象。
无论您是想在具体对象上还是在工厂中实现这些,实际上都是您任务中的当地条件问题。