【发布时间】:2010-11-08 09:15:46
【问题描述】:
是否有人对 Java 中的复制构造函数/工厂方法等有任何建议或已建立的最佳实践和命名约定?特别是,假设我有一个类Thing,并且我想要一个方法返回一个新的Thing,其值与传入的Thing 相同(或者如果它是实例方法,则作为实例)。你会把它作为构造函数还是静态工厂方法或实例方法?你会怎么称呼它?
根据标题,我想避免clone() 和Cloneable。
【问题讨论】:
-
为什么要避免 clone() 和 Cloneable?
-
@Thomas Owens,见这里:artima.com/intv/bloch13.html
-
对于将复制构造函数作为解决方案的答案:复制构造函数不能正确处理所有情况。例如,当您不知道具体类时(但您仍然可以在 clone/copy/whateveryoucallit 方法中使用复制构造函数)。