设计模式-原型模式
来源:互联网 发布:网络主播网站排行榜 编辑:程序博客网 时间:2024/05/29 06:41
原型模式:
通过拷贝原型实例,来创建一个新的此种类型的对象。
简单点说就是,通过一个对象实例,创建一个“一摸一样” 的对象实例,但是与原对象是两个不同的对象实例。
那一摸一样作何解释?
因为拷贝又分为浅拷贝和深拷贝,而一摸一样只是所表现出的形式,而实质却有所不同。
浅拷贝:对于非引用类型属性拷贝一副,对于引用类型属性指向原对象的地址。
深拷贝: 引用类型属性也拷贝一份。
我们看清楚的看出区别,对于我们开发来讲,如何这个对象有可能被修改就必须使用深拷贝,以避免因为操作拷贝对象引起原始对象混乱。
代码示例:
浅拷贝:
public class FileObject implements Cloneable{public String name;public List<String> list = new ArrayList<String>();@Overrideprotected Object clone() throws CloneNotSupportedException {FileObject fileObject = (FileObject) super.clone();return super.clone();}}深拷贝:
public class FileObject implements Cloneable{public String name;public ArrayList<String> list = new ArrayList<String>();@Overrideprotected Object clone() throws CloneNotSupportedException {FileObject fileObject = (FileObject) super.clone();fileObject.list = (ArrayList<String>) this.list.clone();return fileObject;}}
值得注意的是:
通过拷贝产生一个新对象的时候,构造方法不用被调用。
而且复杂情况下通过拷贝产生对象才会加快效率,如果一个普通的,创建不耗时的对象通过clone来生成一个新对象未必比直接new快。
0 0
- 设计模式:原型模式
- 设计模式------原型模式
- 设计模式 原型模式
- 设计模式-【原型模式】
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 设计模式- 原型模式
- 设计模式:原型模式
- 设计模式 - 原型模式
- 设计模式-原型模式
- 【设计模式】原型模式
- 设计模式-原型模式
- 设计模式-原型模式
- 【设计模式】原型模式
- 设计模式----原型模式
- 设计模式------原型模式
- Codevs 2066 三角恋
- 网络爬虫(二)——《金刚:骷髅岛》电影分析
- js 实现链表
- 【adb】cmd命令行输入adb时始终提示adb为非内部命令
- poj 1269 Intersecting Lines
- 设计模式-原型模式
- Git 仓库常用操作
- HDMI EDID
- OJ 2990 Problem E 链表的基本运算(线性表)
- Java web 服务器集群 session共享解决思路
- 遍历文件夹
- Linux 内核时钟架构之时钟事件设备SYS接口
- UVALive
- iOS开发怎样实现全系统的文本复制粘贴