码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式-原型模式

时间:2020-10-27 11:11:12      阅读:22      评论:0      收藏:0      [点我收藏+]

标签:ebean   clone   load   object   发送   数据   地址   设计   提高   

原型模式:java中Object类是所以类的根类,object类提供了一个clone()方法,该方法可以将一个java对象复制一份,但是需要实现的clone的java类必须要实现一个接口cloneable。该借口便是该类能够复制且具有复制的能力

介绍

  1、用原型实例指定创建对象的种类,并且通过看吧这些原型,创建新的对象

  2、运行一个对象在创建另外一个可制定的对象,无需制定如何创建的细节

  3、通过将原型对象传给哪个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝他们自己来实施创建,即对象克隆

步骤:

  1、实现Cloneable接口

  2、重写clone方法

  技术图片

 

spring 中的使用

  当scope 为prototype时,调用getbean时 createbean方法中使用。

浅拷贝

  1、对于数据类型是基本类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象

  2、对于数据类型是引用数据类型的诚意变量,浅拷贝会进行引用传递,也就是直降该诚意变量的引用值(内存地址)复制一份给新的对象。因为实际上两个对象的该诚意变量都指向同一个实例,在这种情况下,在一个对象中国修改该诚意变量会影响到另一个对象的该成员变量值

  3、浅拷贝默认使用clone()方法实现

 

注意事项和细节:

  1、创建新的对象比较复杂时,可以利用原型模式建行对象的创建过场,同事也能够提高效率

  2、不用重新初始化对象,而是动态地获取对象运行是的状态

  3、如果元素对象发送变化,其他克隆对象也会发送想要的变化,无需修改代码

  4、在实现深拷贝是可能需要比较复杂的代码

缺点:需要为每一个类配备一个克隆方法,这对权限的类来说不是很难,但对已有的类进行改造时,需要修改其源代码,违背了ocp原则

设计模式-原型模式

标签:ebean   clone   load   object   发送   数据   地址   设计   提高   

原文地址:https://www.cnblogs.com/ecerwish/p/13879170.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!