java设计模式之原型模式(5)
来源:互联网 发布:淘宝是日本人的吗 编辑:程序博客网 时间:2024/05/30 23:02
原型模式也是一种创建型模式, 只不过他创建的对象是通过克隆来实现。为什么要通过克隆而不是new呢?
举个例子:比如一个对象的创建需要读取本地文件(Excel)中的信息,而且需要读很多个excel的信息
才能创建成功。这时候创建一个对象的成本是很高的。如果每次都new的话是行不通的。这时候原型模式就
派上用场了。我们不重新new一个对象,而是通过之前的对象进行克隆一个。
看代码:
package com.pattern.build.prototype;public abstract class Prototype {protected String name;public abstract Prototype copy();public String getName() {return name;}public void setName(String name) {this.name = name;}}
package com.pattern.build.prototype;public class ConcretePrototype extends Prototype {@Overridepublic Prototype copy() {ConcretePrototype cp = new ConcretePrototype();cp.setName(this.getName());return cp;}}
package com.pattern.build.prototype;public class Client {public static void main(String[] args) {Prototype p = new ConcretePrototype();p.setName("aaa");Prototype copy = p.copy();System.out.println(copy.getName());}}
对象拷贝分为浅拷贝和深拷贝。
浅拷贝:
至拷贝值,不拷贝引用。如果一个对象包含梁一个对象的引用,那么此引用是不会被拷贝(拷贝前后都是指向同一块内存)。
深拷贝:
即拷贝值,也拷贝引用。可以利用序列化实现深拷贝。
java的Object对象中有clone这个方法。也就是所有的类的对象都有clone方法。但是如果这个类没有实现Cloneable
接口,调用clone方法的时候就会抛出CloneNotSupportedException异常。
0 0
- java设计模式之原型模式(5)
- java 设计模式原型模式(5)
- java设计模式之原型设计模式
- java 设计模式之原型模式Prototype
- Java:设计模式之原型模式(Prototype)
- java设计模式之原型模式
- java设计模式之原型模式
- java设计模式之原型模式
- 【Java设计模式】之原型模式
- java设计模式笔记之原型模式
- Java设计模式之原型模式(7)
- Java--设计模式之原型模式
- JAVA设计模式之原型模式
- Java设计模式之原型模式
- JAVA设计模式之原型模式
- JAVA设计模式之原型模式
- java之设计模式---原型模式
- java设计模式之原型模式
- 现代生物基因接绪技术是什么?
- 畅通工程(最小生成树)
- Active Directory(AD)域环境本地测试(外加部分内网渗透命令)
- 谋哥:悟马道长第一句话之“不要赚屌丝的钱”
- 什么是现代生物基因接绪技术?
- java设计模式之原型模式(5)
- C# 正则表达式资料
- Jaxb generate to Java command
- 树形模糊查询树,数据达到一定量,如何才能保证性能,保证加载树不卡
- 现代生物基因接绪技术有什么影响?
- HTML5的Video标签详细说明手册
- HDU 1507 Uncle Tom's Inherited Land*
- Tomcat全攻略
- 常见的动画效果(二)