Java原型设计模式

作者: 人失格 | 来源:发表于2016-12-05 15:44 被阅读119次

浅复制与深复制

  1. 浅复制被复制对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用仍然只指向原来的对象,换言之,浅复制默认只对值类型和String类型进行复制, 对于引用类型仍然指向原来的对象(内存地址相同,修改其中一个会影响到所有引用的对象)。
  2. 深复制在浅复制的基础上,对于引用类型的对象进行复制(内存地址不同,深复制后的所有对象对应内存都是不同值,互相修改不会印象)

原型模式优点

  1. 根据客户端要求实现动态穿件对象,客户端不需要知道对象的创建细节,便于代码的维护和扩展。
  2. 使用原型模式创建的对象如果比较复杂,会比直接new一个对象在性能上好很多,因为object的clone是本地方法,直接操纵二进制数据,在复制大对象的时候非常明显,比如需要在一个循环体内创建对象,I假如对象创建过程比较复杂,使用原型模式可以简化步骤。

原型模式的注意事项

  1. 使用原型模式复制对象不会调用类的构造方法,因为对象的复制是通过内存中来进行复制,不仅构造方法不会调用,访问权限也会失效。所以在某种程度上来讲,原型模式和单例模式是向冲突的。

  2. 在使用时一定要注意深拷贝与浅拷贝的问题,clone方法只会拷贝对象的基本的数据类型和String类型,对于数组、容器对象、引用对象等都不会拷贝。如果需要对数组 容器对象,引用对象进行拷贝,需要另行拷贝。

  3. 如果对象比较复杂,可以考虑实现Serializable接口,通过序列化和反序列化来进行深拷贝。

相关文章

  • Java设计模式之04_Prototype(原型模式)

    更多Java设计模式:Java设计模式-目录 原型模式是一种简单、易使用的创建型设计模式,通过给出一个原型对象来指...

  • Java设计模式——原型模式

    Java设计模式之原型模式 回顾 Java设计模式系列的上一期写了工厂模式,那么创建类的设计模式还有生成器模式和原...

  • 10、原型模式(Prototype Pattern)

    1. 原型模式 1.1 简介   原型模式又叫克隆模式,顾名思义该模式是克隆对象的代码逻辑的设计。在《JAVA与模...

  • Java架构师课程

    Java架构班开学典礼 Spring中常用的设计模式概述及工厂模式详解 单例模式及原型模式单例模式及原型模式单例模...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • Java原型设计模式

    浅复制与深复制 浅复制被复制对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用仍然只指向原来的对象,...

  • Java设计模式<原型模式>

    Java设计模式<原型模式> 意图 原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思...

  • 总览

    1 书籍推荐 《Java设计模式》 2 分类 创建型模式 工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模...

  • 设计模式之原型模式

    一 预备知识 1. 首先我们要知道 原型模式是设计模式中的创建型 2.要了解原型模式我们要了解java 中的深...

  • Java 深克隆&浅克隆

    Java 深克隆(DeepClone)与浅克隆(ShallowClone)是原型设计模式的灵魂。记录结构:--什么...

网友评论

    本文标题:Java原型设计模式

    本文链接:https://www.haomeiwen.com/subject/lpakmttx.html