设计模式之原型模式
来源:互联网 发布:配置网络 ubuntu 编辑:程序博客网 时间:2024/05/01 15:25
关于原型模式,这个网上的介绍相对于其他,就少很多,也就是意味着,这并不复杂。
因为他是一种创建模式,那么你除了通过new产生对象,有没有办法,再产生一个对象呢?答案就是,原型,类似于你用ctrl+c加ctrl+v的效果,复制粘贴,之后还能对其修改,尽管这个例子不太恰当,可是原型就是通过复制原来的对象,产生一个新的对象,然后,在不影响原来的对象的基础上,进行各种操作,就类似《让子弹飞》中的黄四爷替身,大家把他认为就是黄四爷,一个效果。
如何实现原型?
1.有个抽象类或者接口,去实现clone方法或者Clonable接口。
2.其中有个问题,就是浅拷贝和深拷贝,以前看c++遇到这个问题,没相当,java里面也有的,2者最大不同就是,浅拷贝在拷贝引用时,只是拷贝地址依然指向原来的对象,而深拷贝,则可以说是拷贝的一模一样。
3.还有些文章提到了,原型管理器。为什么有这个类?
很简单,当你对同一个对象,拷贝了一大堆时,总有些没用的想删除,或者,还嫌不够,继续添加内容之类的,修改复制过来的对象,所有这些操作必须有这么个管理者来完成。
最后,就是
1.如果浅拷贝,直接继续父类object里面的clone,也就是super,clone(),
2.而深拷贝有个问题就是,嵌套引用,造成循环风险。因此都是把它序列化,转成2进制流,再对其输出复制。
总结
就是说,clone在java里面有风险,不推荐使用,所以,你就很少见到原型的例子,但是作为一种模式,既然经典肯定,还是有其优点,就这么多。
最后,贴个有代码的地址,去看看
1.http://blog.csdn.net/chmask/article/details/2631485
2.http://zz563143188.iteye.com/blog/1847029
- 设计模式之原型
- 设计模式之原型
- 设计模式 之 原型
- 设计模式之原型
- 设计模式之原型
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之-原型模式
- 设计模式之 原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之--原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 深入redis内部--字典实现(未完成)
- 2013年小结及2014年展望
- kmp java implement--转
- java实现迷宫算法--转
- Memcached分布式算法详解--转
- 设计模式之原型模式
- 【Cracking the coding interview】Q1.1(字符唯一)
- Unity屏幕渲染技术
- Oracle中出现Ora-00054该怎么处理,V$locked_object和V$session的用法
- TS流的基本概念
- secureCRT下的串口不能输入
- 解决GPG error: The following signatures couldn't be verified because the public key is not available
- Ubuntu下使用Mysql
- 黑马程序员_多态性