【23种设计模式之】5.原型模式,浅克隆、深克隆——概述

版权声明:本文为博主原创,转载请注明出处。 https://blog.csdn.net/u011848397/article/details/88955301

参考文章:设计模式(四)原型模式设计模式读书笔记-----原型模式渐析java的浅拷贝和深拷贝

定义
可以利用过一个原型对象来指明我们所要创建对象的类型,然后通过复制这个对象=来获得与该对象一模一样的对象实例。

Java原型模式
利用Cloneable接口和clone()方法。

Prototype模式中实现起来最困难的地方就是内存复制操作,所幸在Java中提供了clone()方法替我们做了绝大部分事情。

实现方式包括:浅拷贝深拷贝渐析java的浅拷贝和深拷贝
参考示例:设计模式(四)原型模式

简单来说,浅拷贝和深拷贝的区别在于,是否有对拷贝对象中的引用成员变量创建新的实例。(即,修改原对象的引用成员变量内容时,拷贝对象中的引用成员变量内容是否改变;也即,原对象与拷贝对象的引用成员变量的内存地址是否一致

浅拷贝:内存地址一致
在这里插入图片描述
深拷贝:内存地址不一致
在这里插入图片描述

应用场景:

原型模式很少单独出现,一般是和工厂方法模式一起出现,通过clone的方法创建一个对象,然后由工厂方法提供给调用者。

spring中bean的创建实际就是两种:单例模式和原型模式。(当然,原型模式需要和工厂模式搭配起来)

猜你喜欢

转载自blog.csdn.net/u011848397/article/details/88955301