gpt4 book ai didi

java - 如何实现原型(prototype)模式?

转载 作者:搜寻专家 更新时间:2023-11-01 00:53:20 25 4
gpt4 key购买 nike

原型(prototype)模式的目标是通过降低创建成本来克隆一个对象。这是一个例子:

class Complex {
int[] nums = {1,2,3,4,5};
public Complex clone() {
return new Complex();//this line create a new object, so is it violate the objective of prototype ?//
}
}

class Test2 {
Complex c1 = new Complex();
Complex makeCopy() {
return (Complex)c1.clone();// Is it actually create a new object ? based on the clone method in Complex class? //
}
public static void main(String[] args) {
Test2 tp = new Test2();
Complex c2 = tp.makeCopy();
}
}

我认为是为了深拷贝。那么,有人可以帮我解决这个问题吗???

最佳答案

首先,要让它正常工作,您的 Complex 类需要实现 Cloneable标记接口(interface)向 Object.clone() 方法指示该方法制作该类实例的字段对字段副本是合法的。然后你需要覆盖 Object.clone() 方法来指定复制行为:

public Complex clone(){
Complex clone = (Complex)super.clone();
clone.nums = this.nums;
return clone;
}

关于java - 如何实现原型(prototype)模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3533020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com