定义:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同或类似的新对象
原型模式包含了以下主要角色
- 抽象原型类:规定具体原型对象必须实现的接口
- 具体原型类:实现抽象原型类的clone()方法,它是可被复制的对象
- 访问类:使用具体原型类的clone()方法来复制新的对象
克隆分为浅克隆(地址没变) 和深克隆 java的Object类提供浅克隆的clone()方法,具体原型类只要实现Cloneable接口(就是抽象原型类)重写此类的clone()方法 就可实现对象的深克隆(相当于new一个 地址变了)
应用场景
- 对象之间相同或相似,只是个别属性不同
- 对象的创建比较麻烦,但复制比较简单的时候
原型扩展
在原先的基础上增加 原型管理类,用HashMap保存多个复制的原型,client类通过get方法获得他