JAVA--原型模式(Prototype)--设计模式五

来源:互联网 发布:数组中随机数有的为空 编辑:程序博客网 时间:2024/06/05 18:28


1,概述:  

           (1)原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,
该模式的思想就是将一个对象作为原型,对其进行复制,克隆,产生一个和原型对象
类似的新对象,



2,实现:

           (1)这里会通过对象的复制,进行讲解,在java中,复制对象是通过clone()
实现的,先创建一个原型类:



 很简单,一个原型类,只需要实现Cloneable接口,复写clone()方法,此处的clone
方法可以改成任意的名称,因为Cloneable接口是一个空接口,你可以任意实现类的
方法名,如cloneA或者cloneB,因为此处的重点是super.clone()这句话
super.clone()调用的是Object的clone()方法,而在Object类中,clone()是native的
,具体怎么实现,另查资料。
         (2)这里将解释一下深复制和浅复制的概念:
              ①浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而
引用类型,指向的还是原对象所指向的。
              ②深复制:将一个对象复制后,不论是基本数据类型还有引用类型,都是
重新创建,简单来说,就是深复制进行了完全彻底的复制,而浅复制不彻底。
         
        (3)此处,写一个深浅复制的例子:





 要实现深复制,需要采用流的形式读入当前对象的二进制输入,再写出二进制
数据对应的对象。




1 0