原型模式由来:
通常我们创建一个对象都是通过new一个实例来创建,假如需要多个相同的实例即重复创建许多相同对象的时候,每次都去new,会增加创建对象的复杂度以及消耗内存空间。
这时候就需要原型模式来解决。原型就是已经存在的某一个实例,如果后面需要更多的这样的实例,可以通过对原对象进行拷贝来完成创建。
---------GOF中原型模式意图:
用原型实例指定创建对象的种类,并且通过拷贝这些原型对象创建新的对象。
深拷贝与浅拷贝:
浅拷贝:对一个实例进行拷贝的时候,值类型都会被重新拷贝一边,当实例中引用类型时,浅拷贝后新实例和原实例共享相同的引用属性。
深拷贝:对一个实例进行拷贝的时候,值类型和引用类型都会被拷贝一边,即原实例和新实例中的引用属性互不相关。