设计模式 6 - 原型模式及spring源码案例分析

原型模式是一种创建型设计模式,通过复制已有对象来创建新对象,提高性能。在Java中,需实现Cloneable接口并重写clone()方法。在Spring中,prototype作用域的bean采用原型模式创建。深拷贝和浅拷贝是原型模式中的关键概念,深拷贝可避免对象间的引用共享。此模式在复杂对象创建时尤其有用,但可能违反开闭原则。
摘要由CSDN通过智能技术生成

目录

 

原型模式

1. 原型模式的引入

 2. 原型模式的介绍和使用场景

3. 原理结构图UML图

4. 代码演示

5. 原型模式在spring中的使用

6.深拷贝的实现方式

7. 小结


原型模式

博主一句话总结(非准确):原型模式是一种创建下的设计模式,用于创建重复的对象,保证性能,在进行深拷贝时,可能会造成复杂的代码,同时需要为每一个类配备一个克隆方法,对于已经存在的类来说得修改源代码,这违背了ocp原则。

1. 原型模式的引入

原型模式,Java中的Object类是所有类的根类,Object类提供了一个clone()方法,该方法可以将一个java对象复制一份,需要实现clone的类要实现Cloneable接口,该接口表示该类能够复制而且具有复制的能力

 2. 原型模式的介绍和使用场景

  • 用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建对象
  • 原型模式允许一个对象创建另一个可定制的对象,无需知道创建的细节
  • 工作原理:通过将一个原型对象传给要发动创建的对象,这个要发动创建的对象通过请求原型模型的拷贝来完成对象的创建,即原型模式.clone()

大体上有两种使用场景

  1. .在需要一个类的大量对象的时候,使用原型模式是最佳选择,因为原型模式是在内存中对这个对象进行拷贝,要比直接new这个对象性能要好很多,在这种情况下,需要的对象越多,原型模式体现出的优点越明显。
  2. 如果一个对象的初始化需要很多其他对象的数据准备或其他资源的繁琐计算,那么可以使用原型模式。
  3. 当需要一个对象的大量公共信息,少量字段进行个性化设置的时候,也可以使用原型模式拷贝出现有对象的副本进行加工处理。

3. 原理结构图UML图

  • Prototype:原型类,声明一个克隆自己的接口
  • ConcretePrototype:具体的圆形类,实现一个克隆自己的操作
  • client:发动创建的对象,让一个原型对象克隆自己,从而创建一个新的对象(属性一样)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值