意图:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象;
类型:对象创建型;
优点:使用原型模式创建对象相比用new创建对象性能要好,因为Object类的clone()方法是一个本地方法,它直接操作内存中得二进制流;此外clone对象简化创建对象的过程;
参与者:
1)原型Prototype:声明一个克隆自身的接口;
2)ConcretePrototype:实现一个克隆自身的操作;
3)Client:让原型克隆自身从而创建一个新的对象;
package com.prototype;
interface Prototype extends Cloneable{
public Object clone();
}
class PrototypeImp implements Prototype{
public Prototype clone(){
Prototype prototype = null;
try{
prototype = (Prototype)super.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return prototype;
}
}
public class Client {
public static void main(String[]args){
Prototype prototype = new PrototypeImp();
Prototype prototype2 = (Prototype)prototype.clone();
}
}