定义:
用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。
本质:
克隆生成对象。
优点:
- 对客户端隐藏具体的实现类型
- 在运行时动态改变具体的实现类型
缺点:
- 每个原型的子类都必须实现clone操作,尤其在包含引用类型的对象时,clone方法会比较麻烦,必须要能够递归地让所有的相关对象都要正确地实现克隆。
建议在以下情况中选用原型模式:
- 如果一个系统想要独立于它想要使用的对象时,可以使用原型模式,让系统只面向接口编程,在系统需要新的对象的时候,可以通过克隆原型来得到。
- 如果需要实例化的类是在运行时动态指定时,可以使用原型模式,通过克隆原型来得到所需要的实例。