Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1146618
  • 博文数量: 103
  • 博客积分: 1897
  • 博客等级: 上尉
  • 技术积分: 1717
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-19 21:02
文章分类

全部博文(103)

文章存档

2013年(19)

2012年(84)

分类: Java

2012-10-07 08:34:49

原型模式可以复制原有对象的数据而无须新建一个新的对象,这在构造一个复杂对象和耗时的对象时十分有用,可以快速的复制对象的内容,节省系统时间的开销。其顶层分析图如下:

java中提供了一个clonable的接口,还有提供了一个clone的方法,可以方便的实现这种模式。
首先,让你需要克隆的类实现clonable接口,并实现clone方法。
public class ClonePrototype implements Cloneable {
private int num = 0;
public Object Clone(){
ClonePrototype o = null;
try {
o = (ClonePrototype)super.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return o;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}

}
然后,写一段测试代码。
public static void main(String[] args) {
// TODO Auto-generated method stub
ClonePrototype c = new ClonePrototype();
c.setNum(100);
// 开始克隆
   ClonePrototype cp = (ClonePrototype) c.Clone();
   
System.out.println("c:"+c.getNum()+ " cp:"+cp.getNum());
}
这样,就可以方便地得到类的实例了。当然值得注意的是,这里实现的实际上是淺复制,至于什么是淺复制和深复制,大家可以到网上去找一下。
阅读(1078) | 评论(0) | 转发(0) |
0

上一篇:建造者模式

下一篇:桥接器模式

给主人留下些什么吧!~~