使用原型实例指定创建的对象类型,然后复制该原型对象的属性以创建新对象。通常,对象可以创建另一个可自定义的对象,而无需知道创建详细信息。通过复制粘贴操作可以简单地查看。
原型模式复制分为浅复制和深复制。
浅复制
复制对象的属性与原始对象完全相同。基本类型的属性属于值传递,更改一个对象的值,另一个不受影响。对于引用数据类型的属性,仍然指向现有属性指向的对象的内存地址,引用类型传递引用,指向同一个内存空间,更改一个对象的引用类型值会更改其他对象,但必须小心,String是引用类型,但String类不能更改。是常数。对象调用clone方法来复制新对象。在这种情况下,两个对象的同一个String类型的属性指向同一个内存空间,但更改其中一个会生成新的内存空间,现在两个对象的String类型属性指向两个不同的内存空间,更改其中一个不会影响另一个,并且可以将其用作默认类型。
沈复制
克隆对象的所有属性都将被克隆,不再指向原始对象地址。
这种设计模式使用场景非常广泛,在日常开发中操纵对象时,有时不想影响原始对象。特别是,根据业务需求,应使用浅克隆或深克隆。
抽象原型类:规定了特定原型对象必须实现的clone []方法。
特定原型类:实现抽象原型类的clone []方法,抽象原型类是可以复制的对象。
访问类:在特定原型类中,使用clone []方法复制新对象。
4,1浅克隆
运行结果:
4,2深度复制
运行结果:
通过序列化和反序列化获得的对象地址值不同,可以达到目的
发表评论