Android设计模式系列--原型模式
来源:互联网 发布:java时间转换成时间戳 编辑:程序博客网 时间:2024/05/19 13:30
Android设计模式系列--原型模式
CV一族,应该很容易理解原型模式的原理,复制,粘贴完后看具体情况是否修改,其实这
制,粘贴完后看具体情况是否修改,其实这就是原型模式。
从java的角度看,一般使用原型模式有个明显的特点,就是实现cloneable的clone()方法。
原型模式,能快速克隆出一个与已经存在对象类似的另外一个我们想要的新对象。
1.意图
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
热门词汇:克隆深拷贝 浅拷贝
2.结构图和代码
它的结构图非常简单,我们以Intent为例子:
Intent的clone方法非常简单:
返回一个新的Intent对象。
克隆操作分深拷贝和浅拷贝,浅拷贝说白了就是把原对象所有的值和引用直接赋给新对象。深拷贝则不仅把原对象的值赋给新对象,而且会把原对象的引用对象也重新创建一遍再赋给新对象。
我们具体分析一下Intent是浅拷贝还是深拷贝吧:
这里我们为什么Intent要重写Object的clone方法,就与深拷贝有关。
其实我们查看Object的clone()方法源码和注释,默认的super.clone()用的就是浅拷贝:
这种形式属于简单形式的原型模式,如果需要创建的原型数目不固定,可以创建一个原型管理器,在复制原型对象之前,客户端先在原型管理器中查看
是否存在满足条件的原型对象,如果有,则直接使用,如果没有,克隆一个,这种称作登记形式的原型模式。
适用原型模式可以对客户隐藏产品的具体类,因此减少了客户知道的名字的数目,此外是客户无需改变
原型模式的缺陷是每个原型的子类都必须实现Cloneable接口,这个实现起来有时候比较困难。
3.效果
(1).创建型模式
(2).运行时刻增加和删除产品
(3).改变只以指定新对象(ctrl+v,然后修改)
(4).改变结构以指定新对象。(类似2,实现不同而已)
(5).减少子类的构造
- Android设计模式系列--原型模式
- Android设计模式系列--原型模式
- Android设计模式系列--原型模式
- Android设计模式系列--原型模式
- Android设计模式系列--原型模式
- Android设计模式系列--原型模式
- Android设计模式系列--原型模式
- Android设计模式系列--原型模式
- Android设计模式系列--原型模式
- Android设计模式系列--原型模式
- 设计模式系列-原型模式
- 设计模式系列-原型模式
- 设计模式系列:原型模式
- 【设计模式系列】--原型模式
- Android设计模式系列(10)--SDK源码之原型模式
- Android设计模式系列(10)--SDK源码之原型模式
- Android设计模式系列(10)--SDK源码之原型模式
- Android设计模式系列(10)--SDK源码之原型模式
- R语言之处理数据(一)
- Android DrawerLayout 高仿QQ5.2双向侧滑菜单
- 引用GDataXML时系统相关配置
- Android学习笔记(20)————利用ListView制作带竖线的多彩表格
- 1个apk多个图标
- Android设计模式系列--原型模式
- 选top域名6点建议
- 《数据结构》实验4:字符串和多维数组 实验
- easyui解析器parser
- 糟心的C++指针类型辨识
- 算法系列之十二:多边形区域填充算法--改进的扫描线填充算法
- 《TCP/IP详解 卷1:协议》读书笔记
- SW_DVD5_Office_Professional_Plus_2013_W32_ChnSimp_MLF_X18-55126
- 误删系统表(drop dual)后数据库再次启动报错的解决办法