原型模式:根据已有对象,来创建新的对象。
client:用于注册、获取对象
prototype:原型对象接口
concreteprototype:具体的对象实现
//原型对象接口
interface Prototype{
//定义生成对象的方法
void clone()
}
//某一具体的原型对象
class A implements Prototype {
public void clone (){
//具体是怎么根据已有对象,来生成新对象的
}
}
class Client {
//存储名称与原型
Map<String,Prototype> pool=new HashMap();
//注册原型对象
public void reg(String name,Prototype p){
pool.put(name,p);
}
//根据名称获取新对象
public Prototype get(String name){
Prototype p=pool.get(name);
//根据已有的原型对象,创建新对象并返回
return p.clone();
}
}