原型模式
来源:互联网 发布:海康监控软件 编辑:程序博客网 时间:2024/05/30 07:14
package Prototype;import java.io.Serializable;import java.util.Date;/*** * 原型模式 * @author zw * */public class Sheep1 implements Cloneable,Serializable{private String name;private Date birthday;@Overrideprotected Object clone() throws CloneNotSupportedException {// TODO Auto-generated method stubObject obj =super.clone();return obj;}public Sheep1() {// TODO Auto-generated constructor stub}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public Sheep1(String name, Date birthday) {super();this.name = name;this.birthday = birthday;}}
package Prototype;import java.util.Date;/*** * 原型模式 * @author zw * */public class Sheep2 implements Cloneable{private String name;private Date birthday;@Overrideprotected Object clone() throws CloneNotSupportedException {// TODO Auto-generated method stubObject obj =super.clone();//深克隆Sheep2 s =(Sheep2) obj;s.birthday =(Date) this.birthday.clone();return obj;}public Sheep2() {// TODO Auto-generated constructor stub}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public Sheep2(String name, Date birthday) {super();this.name = name;this.birthday = birthday;}}
package Prototype;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.Date;/*** * 使用序列化和反序列化 * @author zw * */public class Client3 {public static void main(String[] args) throws Exception {Date date = new Date(2456456456L);Sheep1 s1 = new Sheep1("多利",date);ByteArrayOutputStream bos =new ByteArrayOutputStream();ObjectOutputStream oos = new ObjectOutputStream(bos);oos.writeObject(s1);byte[] data =bos.toByteArray();ByteArrayInputStream bis = new ByteArrayInputStream(data);ObjectInputStream ois = new ObjectInputStream(bis);Sheep1 s2 =(Sheep1) ois.readObject();System.out.println(s2.getName());System.out.println(s2.getBirthday());}}
package Prototype;import java.text.SimpleDateFormat;import java.util.Date;/*** * 测试原型模式(浅克隆) * * @author zw * */public class Client {public static void main(String[] args) throws CloneNotSupportedException {Sheep2 s1 = new Sheep2("多利",new Date(123445L));System.out.println(s1);System.out.println(s1.getName());//克隆s1这只羊Sheep2 s2 =(Sheep2) s1.clone();System.out.println(s2);System.out.println(s2.getName());}}
阅读全文
0 0
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型 模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 原型模式
- 国家代码
- 测试代码运行后不报错,数据库也会生成表,但控制台不能输出。哪位大神能帮我解决?
- composer 安装yii2框架
- 504. Base 7
- 关于ASP.NET 发送电子邮件
- 原型模式
- 剑指offer——反转链表
- autolayout异常解决
- cURL请求接口出现name lookup timed out
- JVM内存分几种?
- Fibonacci 快速幂矩阵
- 安卓获取系统当前时间
- presentations.open 操作ppt时报错
- 排列组合 (组合数 思维题)