Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux集群 > Architecture > » 正文

Prototype(原型模式)

来源: 未知 分享至:
原型模式就是用一个对象来创建一个与该对象相同或相近的新的对象。
假如我们有一个Product类,
class Product
{
String name=null;
//set get方法
……
}

这个类有一个对象product1
如果我们创建一个跟product1一样的对象,那么传统上应该这样:Product product2=new Product();product2.setName(product1.getName);
但是如果采用原型模式的话我们只要在原型对象里添加一个clone()函数
class Product
{
String name=null;
//set get method
……
public Product clone()
{
Product product=new Product();
Product.setName(this.name);
Return product;
}
}

创建对象Product product2=product1.clone();
在java中,所有的对象都继承了Object,Object类中有一个clone()方法用来克隆对象
Class Product implements Cloneable
{
String name=null;
//set get method
……
public Product clone throws CloneNotSupportedException
{
return super.clone();
}
}

Object中的clone执行的时候使用了RTTI(run-time type identification)的机制,动态得找到目前正在调用clone方法的那个reference,根据它的大小申请内存空间,然后进行的复制,将该对象的内存空间完全复制到新的空间中去。
所以调用super.clone() 得到的是当前调用类的副本,而不是父类的副本。

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史