在Java中,克隆模式可以通過實現Cloneable接口和重寫Object類的clone()方法來實現。下面是一個簡單的例子:
首先,創建一個可克隆的原型類:
public class Prototype implements Cloneable {
private String name;
public Prototype(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public Prototype clone() throws CloneNotSupportedException {
return (Prototype) super.clone();
}
}
然后,可以通過調用clone()方法來創建原型對象的克隆對象:
public class Main {
public static void main(String[] args) {
Prototype prototype = new Prototype("原型對象");
try {
Prototype clone = prototype.clone();
System.out.println(clone.getName()); // 輸出:原型對象
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
在上面的例子中,原型類Prototype實現了Cloneable接口,并重寫了clone()方法,確保可以進行克隆操作。在Main類中,可以通過調用clone()方法來創建原型對象的克隆對象,并輸出克隆對象的名稱。
需要注意的是,克隆模式有兩種方式:淺克隆和深克隆。上面的例子是淺克隆,即只復制對象的基本類型屬性,而引用類型屬性仍然指向同一個對象。如果需要實現深克隆,即復制對象的所有屬性,包括引用類型屬性,可以在clone()方法中對引用類型屬性進行深度復制。