背景
有时候你会发现其实引用类型也是很不让人喜欢的,因为某些时候,你可能需要两个相同的引用对象,一个用来备份,一个用来继续操作,但是继续操作那个不能影响到我备份那个,这个时候麻烦就来了,两个引用如果指向同一个内存空间的对象,那么修改其中一个,另一个肯定会发生变化。
1、使用意图
不用重新初始化对象,而是动态的获得对象运行时的状态。
2、生活实例
建立复印的过程就是一个原型模式,可以对某个区域进行针对性修改,然后拿修改过后的资料继续复印!
3、Java 例子(框架、JDK 、JEE)
不清楚哪里,如果有人知道可以补充
4、模式类图
5、模式优点
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
原型模式其实就是一个从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。
一般在初始化的信息不发生变化的情况下克隆是最好的办法,克隆既隐藏了对象创建的细节,有对性能是大大提高。
不用重新初始化对象,而是动态的获得对象运行时的状态。
原型模式使用克隆肯定会牵扯到深复制和浅复制,Java中实现复制直接代用clone方法,但是那是浅复制,真正采用深复制还需要实现Serializable接口,或者,对对象类型的数据进行深度深度clone。
6、与类似模式比较
感觉原型模式用的很少,因为他是一个对象数据的备份利用,我们定义一个类的时候经常会给他的某些成员变量进行初始化,不知道这样子new出的对象是不是就和原型模式是一样的道理呢?呵呵..........
时间: 2024-10-10 01:25:59