在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()方法中对引用类型属性进行深度复制。