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

原型模式与serializable

时间:2015-04-01 19:38:39      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

写原型模式时课件上有一个实现模式是利用可串行化接口实现,然后就发现那个代码(如下),这个借口好神奇啊,说是接口但更像是我IOS中Object-C的协议,通常这种接口被称为标记接口,implements这个协议后就可以对其进行各种流操作了,其实就是ObjectStream,与其他流的结合,一会儿在分析一下这些流。

ObjectOutputStream实现了把对象序列化的过程,ObjectInputStream实现了字节流的反序列化即把字节再变回对象。这里面就有一个问题了,就是说一般当你为一个类implements serializable后必然会有一个warning“什么什么没有序列号”,自动补全后,一般是“private static final long serialVersionUID = 1L;”这个东西有什么用?(现在我也不是很了解,但看了一些感觉模模糊糊,有时间再看吧,说什么当对象变成字节流后,如果改变了流的内容,如果没有序列后,这时去反序列化这个字节流就会报错,而如果假加入了序列号就会把这些改变的值,变为反序列后对象的初始值

 1 //附件类
 2 class  Attachment implements Serializable
 3 {
 4        private  String name; //附件名
 5        public  void setName(String name)
 6        {
 7               this.name  = name;
 8        }
 9        public  String getName()
10        {
11               return  this.name;
12        }
13      public void download()
14      {
15             System.out.println("下载附件,文件名为" + name);
16      }
17 }
18 //附件类
19 class  Attachment implements Serializable
20 {
21        private  String name; //附件名
22        public  void setName(String name)
23        {
24               this.name  = name;
25        }
26        public  String getName()
27        {
28               return  this.name;
29        }
30      public void download()
31      {
32             System.out.println("下载附件,文件名为" + name);
33      }
34 }

 资深盗图党:

技术分享

这个图就是java IO中的各种流的关系,就补充一句吧,InputStreamReader可以把字节流变成字符流,OutputStreamWriter可以把字符流变成字节流。

原型模式与serializable

标签:

原文地址:http://www.cnblogs.com/chaiwentao/p/4384706.html

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