java设计模式之原型模式
2016-08-30 17:33
218 查看
==============和上几篇一样,原型模式也是java设计语言中 关于 对象创建的模式之一==================
原型模式,即通过实现一个"克隆"接口,不需要进行new操作直接获取这个对象的一个全新实例
========1. 简单形式的原型模式
========2. 登记形式的原型模式
其中登记形式 就是简单形式多了一个对象管理器.存放通过克隆产生的对象. 方便客户端调用
而克隆又分为浅克隆和深度克隆
=============浅克隆 类似于 object 类的clone方法
=============深度克隆 可以用序列化和反序列化 实现========如下==============
public Object deepClone() throws IOException, ClassNotFoundException{
//将对象写到流里
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(this);
//从流里读回来
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bis);
return ois.readObject();
}
原型模式,即通过实现一个"克隆"接口,不需要进行new操作直接获取这个对象的一个全新实例
========1. 简单形式的原型模式
========2. 登记形式的原型模式
其中登记形式 就是简单形式多了一个对象管理器.存放通过克隆产生的对象. 方便客户端调用
而克隆又分为浅克隆和深度克隆
=============浅克隆 类似于 object 类的clone方法
=============深度克隆 可以用序列化和反序列化 实现========如下==============
public Object deepClone() throws IOException, ClassNotFoundException{
//将对象写到流里
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(this);
//从流里读回来
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bis);
return ois.readObject();
}
相关文章推荐
- Java设计模式(11) —— 原型
- java设计模式---Prototype Pattern---原型模式(复制建立对象)
- java设计模式(五)创建者模式和原型模式
- JAVA设计模式(5)-原型模式 Prototype
- Java设计模式 创建模式-原型模式(Prototype)
- Java设计模式(二)Prototype(原型),Builder和Singleton(单态)
- java设计模式(原型模式)
- 设计模式(五)----- 原型模式(Prototype)----(JAVA版)
- JAVA设计模式五--Prototype(原型模式)
- Java与设计模式(05)--原型模式
- java 设计模式学习笔记(8) - 原型模式
- java设计模式--原型设计模式 Prototype
- Java设计模式 - Prototype(原型模式)
- JAVA设计模式 — 原型模式(Prototype)
- Java设计模式:Prototype(原型)
- java设计模式连载(4) --原型模式
- java23种设计模式之原型模式(Prototype)
- java设计模式--原型设计模式 Prototype
- java设计模式——原型模式(Prototype)
- Java:设计模式之原型模式(Prototype)