目录
1.Prototype模式
1.1 作用
有时候需要在“不指定类名的前提下生成实例”,此时就要根据现有的实例来生成新的实例。此时需要不根据类来生成实例(不用new),而是根据实例来生成新实例的原型模式,指根据实例原型、实力模型来生成新的实例。
在Java语言中,可以使用clone方法和Cloneable接口来实现该模式。
1.2 示例程序
1.2.1 示例程序类图
1.2.2 Product接口
是复制功能的接口,该接口继承了java.lang.Cloneable接口。
//要复制对象的模板接口
public interface Product extends Cloneable{
public abstract void use(String s);
public abstract Product createClone();
}
1.2.3 Manager类
public class Manager {
private Map<String,Product> showcase = new HashMap<>();//存储已有的实例
public void register(String name,Product p) {
showcase.put(name,p);
}
public Product create(String name) {
Product p = showcase.get(name);//获取实例
return p.createClone();//复制已有实例产生新的实例对象
}
}
1.2.4 UnderlinePen类
public class Under