设计模式创建型原型模式
Posted lisin-lee-cooper
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式创建型原型模式相关的知识,希望对你有一定的参考价值。
一.概述
1.1
用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。
1.2结构
原型模式包含如下角色:
抽象原型类:规定了具体原型对象必须实现的的 clone() 方法。
具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。
访问类:使用具体原型类中的 clone() 方法来复制新的对象。
二.场景
2.1 类图
2.2 代码
public class Realizetype implements Cloneable
public Realizetype()
System.out.println("具体的原型对象创建完成!");
@Override
protected Realizetype clone() throws CloneNotSupportedException
System.out.println("具体原型复制成功!");
return (Realizetype) super.clone();
public static void main(String[] args) throws CloneNotSupportedException
Realizetype r1 = new Realizetype();
Realizetype r2 = r1.clone();
System.out.println("对象r1和r2是同一个对象?" + (r1 == r2));
三.深克隆和浅克隆
原型模式的克隆分为浅克隆和深克隆。
浅克隆:创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。
深克隆:创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址(实现Serializable,使用对象输入输出流拷贝或者,实现
Cloneable,重写clone 方法,为每个对象属性都执行clone方法)。
以上是关于设计模式创建型原型模式的主要内容,如果未能解决你的问题,请参考以下文章