设计模式创建型原型模式

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方法)。

以上是关于设计模式创建型原型模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式_创建型模式_原型模式

(创建型模式)原型模式

创建型设计模式 之 原型模式

创建型设计模式-原型模式

8创建型模式之原型模式

设计模式:创建型-原型模式