package prototype;
/*
* 原型模式定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.
* Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节.
* 工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原
* 型对象拷贝它们自己来实施创建。
*/
public abstract class Monkey implements Cloneable {
private String monName;
public void setMonName(String monName) {
this.monName = monName;
}
public String getMonName() {
return monName;
}
@Override
protected Object clone() throws CloneNotSupportedException {
Object obj=null;
if(obj==null)
obj=super.clone();
return obj;
}
}
package prototype;
public class Human extends Monkey{
public Human()
{
setMonName("human");
}
public static void main(String[] args)throws Exception
{
Monkey mk=new Human();
System.out.println(mk.getMonName());
Monkey mk2=(Monkey) mk.clone();
System.out.println(mk2.getMonName());
System.out.println("equal:"+mk.equals(mk2));
}
}