今天尚武科技的网站建设工程师将为大家带来关于网站建设中常见的模型讲解——原型模式。原型模式主要针对拷贝创建对象类型,让我们再做同级对象可以快速的拷贝。下面我们就一起详细的了解一下什么是原型模式。
原型模式(PrototypePattern)
定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
原型模式通用代码:
原型模式实际上就是实现Cloneable接口,重写clone()方法。
使用原型模式的优点:
●性能优良
原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好地体现其优点。
●逃避构造函数的约束
这既是它的优点也是缺点,直接在内存中拷贝,构造函数是不会执行的。
使用场景:
●资源优化场景
类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等。
●性能和安全要求的场景
通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。
●一个对象多个修改者的场景
一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用。
浅拷贝和深拷贝:
浅拷贝:Object类提供的方法clone只是拷贝本对象,其对象内部的数组、引用对象等都不拷贝,还是指向原生对象的内部元素地址,这种拷贝就叫做浅拷贝,其他的原始类型比如int、long、char、string(当做是原始类型)等都会被拷贝。
注意:使用原型模式时,引用的成员变量必须满足两个条件才不会被拷贝:一是类的成员变量,而不是方法内变量;二是必须是一个可变的引用对象,而不是一个原始类型或不可变对象。
深拷贝:对私有的类变量进行独立的拷贝
如:thing.arrayList=(ArrayList<String>)this.arrayList.clone();
以上就是石家庄做网站的尚武科技公司为大家带来的关于原型模式的相关介绍,希望大家能可以从中学到你想要知道的任何关于网站建设的知识点。