码迷,mamicode.com
首页 > 其他好文 > 详细

小菜学设计模式——原型模式

时间:2015-06-08 15:21:42      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:


背景

    有时候你会发现其实引用类型也是很不让人喜欢的,因为某些时候,你可能需要两个相同的引用对象,一个用来备份,一个用来继续操作,但是继续操作那个不能影响到我备份那个,这个时候麻烦就来了,两个引用如果指向同一个内存空间的对象,那么修改其中一个,另一个肯定会发生变化。

1、使用意图

    不用重新初始化对象,而是动态的获得对象运行时的状态。

2、生活实例

    建立复印的过程就是一个原型模式,可以对某个区域进行针对性修改,然后拿修改过后的资料继续复印!

3、Java 例子(框架、JDK 、JEE)

    不清楚哪里,如果有人知道可以补充

4、模式类图

技术分享

5、模式优点

    原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

    原型模式其实就是一个从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。

    一般在初始化的信息不发生变化的情况下克隆是最好的办法,克隆既隐藏了对象创建的细节,有对性能是大大提高。

    不用重新初始化对象,而是动态的获得对象运行时的状态。

    原型模式使用克隆肯定会牵扯到深复制和浅复制,Java中实现复制直接代用clone方法,但是那是浅复制,真正采用深复制还需要实现Serializable接口,或者,对对象类型的数据进行深度深度clone。

6、与类似模式比较

    感觉原型模式用的很少,因为他是一个对象数据的备份利用,我们定义一个类的时候经常会给他的某些成员变量进行初始化,不知道这样子new出的对象是不是就和原型模式是一样的道理呢?呵呵..........


小菜学设计模式——原型模式

标签:

原文地址:http://my.oschina.net/heweipo/blog/464106

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!