2024年java基础知识手绘

java基础知识手绘前言 上高中那阵子 特别迷恋火影 所以每周都会等着更新 最让我难忘的是里面的主人公鸣人 和他的各种各样炫酷的技能 他的影分身 一下子可以分离出来多个自己 并且这些自己的副本使用的技能都是相同的 如果他的副本想要使用其他的技能 除非分身再克隆出来一个技能的副本 然后去进行学习 正文 刚刚说的那个例子 大家先记着 接下来我慢慢揭开圆形模式的面纱 原型模式

大家好,我是讯享网,很高兴认识大家。



前言

上高中那阵子,特别迷恋火影,所以每周都会等着更新。最让我难忘的是里面的主人公鸣人,和他的各种各样炫酷的技能。他的影分身,一下子可以分离出来多个自己,并且这些自己的副本使用的技能都是相同的。如果他的副本想要使用其他的技能,除非分身再克隆出来一个技能的副本,然后去进行学习。

正文

刚刚说的那个例子,大家先记着,接下来我慢慢揭开圆形模式的面纱。
原型模式,简单来说就像是我们操纵电脑使的复制粘贴,只不过我们是要去操纵对象。在java中使用原型模式特别的简单,只需要重写clone()方法,然后实现Cloneable接口(其实这个接口是一个空接口,只是为了告诉jvm,这个类是可以克隆的);
原型模式一共分为两种:
1.浅克隆
2.深克隆
下面看看浅克隆的代码
这是一个忍者的实体类,代表鸣人的。

然后是一个skill的实体类,可以装者技能的种类和名称

讯享网
 

在测试类中我们做了这样的操作,将一些属性赋予nanji的实体类中,然后我们通过克隆复制出了一个副本,可以看作类似于影分身一样,然后拿出副本中的技能将它转换为别的技能,最后我们会发现原来本身的技能也发生了变化,这是怎么一回事呢?
这是因为浅克隆,在克隆的过程中,对象中的实体引用,只是复制了这个引用的地址,所以在修改的时候就相当于把原来本体的技能同样进行修改。
那我们要是想不影响之前的本体该怎么办呢,接下来隆重介绍深克隆
深克隆是把忍者类中的技能类也重写了克隆方法,这样在影分身的副本中我们就可以自由转换,而不影响忍者这个本体了。
然后是深克隆的代码:

java基础知识手绘
讯享网

我们继承了Cloneable接口,重写了Clone这个方法。

 
 

后记

小讯
上一篇 2024-12-24 07:01
下一篇 2024-12-29 08:56

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/5223.html