前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android设计模式应用---原型模式

Android设计模式应用---原型模式

作者头像
wust小吴
发布2019-07-08 16:53:58
3990
发布2019-07-08 16:53:58
举报
文章被收录于专栏:风吹杨柳风吹杨柳风吹杨柳

原型模式Prototype

在设计模式那本书里或者网上的讲解中,原型模式其实就是拷贝,分为深拷贝和浅拷贝

该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象

在java中对象有一个方法就是  clone()方法

曾经有人问,怎么不使用new 就生成一个对象,两种方法,就是clone()和反序列化  可以减少new的使用,因为new 是强引用类型

浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的。做法就是调用super.clone()方法就可以

深复制:将一个对象复制后,不论是基本数据类型还有引用类型,都是重新创建的。简单来说,就是深复制进行了完全彻底的复制,而浅复制不彻底。做法必须调用  流的形式进行复制:首先采用读入拿到属性的二进制流,然后采用输出把二进制流输出到要拷贝的对象

他们的主要区别在于  引用类型的属性

Android里面的Intent类就是使用原型模式的

public class Intent implements Parcelable,Cloneable{

    public Object clone(){

return new Intent(this);

    }

}

原型模式就是获取相同属性的对象,很好理解

LayoutInflater 里面也有用到一个原型模式的例子

public LayoutInflater cloneInContext(Context newContext) { 

       return new PhoneLayoutInflater(this, newContext);

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年04月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档