原型模式比较简单,就是克隆。
定义:
用原型实例制定创建对象的种类,并通过拷贝这些原型,创建新的对象。
原型模式归属创建型模式大类,致力于使对象的创建更加简单规范。由于java已经实现了clone方法,不再多讲。
但是这里牵涉一个概念:深拷贝和浅拷贝。用下图表示
浅拷贝是这样。拷贝后的动物园,也可以参观,但是其实看到的是同一只虎。如果你对拷贝后的对象操作,比如把美洲虎换成孟加拉虎,那么原动物园也会被修改
深拷贝是这样。把猫和虎也拷贝了一份,也就是属性。参观的时候,你看到的将是不同的动物(长得一样)。同时,修改拷贝后的属性也不会影响旧的动物园。仅此。