一、概念
在不指定类名的前提下生成实例
二、Prototype模式中的角色
Prototype(原型)
Product角色定义用于复制现有实例来生成新实例的方法
ConcretePrototype(原型)
ConcretePrototype角色负责实现复制现有实例并生成新实例的方法。
Client(原型)
Client角色负责使用复制实例的方法生成新的实例
三、Prototype模式使用场景
1.对象种类繁多,无法将他们整合到一个类中时。
2.难以根据类生成实例时。
3.想解耦框架与生成的实例时。
使用注意事项:
1.java为我们准备了用于复制实例的clone方法,Object中含有clone方法
2.在复制时,类必须实现了Cloneable接口的实例,否则会抛出异常。(Object没有实现此类)
3.饿单例模式和懒单例模式构造方法都是私有的,因而是不能被继承的,有些单例模式可以被继承(如登记式模式)