1.原型模式的介绍
原型模式是一个创建型的模式。原型二字表明了该模式应该有一个样板的实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程也就是我们俗称的“克隆”。被复制的实例就是我们所称的“原型”,这个原型是可以定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下 ,复制一个已经存在的实例可使程序运行的更高效。2.原型模式的定义
用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。3.原型模式的使用场景
3.1 类初始化需要消耗非常多的资源,这资源包括数据、硬件资源等,通过原型拷贝避免这些消耗。3.2 通过new产生一个对象需要非常繁琐的数据准备或访问权限,这时可以使用原型模式。
3.3 一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝。
4.UML类图
5.深拷贝和浅拷贝
5.1 深拷贝(深克隆)深拷贝把要复制的对象所引用的对象复制了一遍5.2 浅拷贝(浅克隆)浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。
5.3 Java中对象的克隆,为了获取对象的一份拷贝,可以利用Object类的clone()方法。必须遵循下面三点:
A.在派生类中覆盖基类的clone()方法,并声明为public[Object类中的clone()放为
protected]
B.在派生类中的clone()方法中,调用supe