美文网首页
拷贝与原型模式

拷贝与原型模式

作者: Tcpieg | 来源:发表于2020-09-02 17:34 被阅读0次

我对于设计模式还是一知半解的,最近看了几个设计模式,单例模式和工厂模式是比较基础和简单的,这里我就不赘述了,但是他们是最为普遍的设计模式,不了解的小伙伴们还是去看看为好。https://www.runoob.com/design-pattern/design-pattern-tutorial.html

拷贝

关于拷贝,这篇文章写得特别好,深入浅出。
总结起来就是:类初始化的过程比作打印,拷贝的过程比作复印。
类加载的过程很复杂,如果我们循环的使用new来初始化对象的话,对于性能的压力是非常大的。而拷贝对象不是重新创建一个对象,而是在内存中进行数据块的拷贝,复制已有的对象。

浅拷贝

浅拷贝只拷贝你指定的对象,至于你指定的对象里面的别的对象,它不拷贝,还是把引用给你,共享变量,这是一种非常不安全的方式,需要特别注意。

public class AAA implements Cloneable {
    private BBB bbb = new BBB();

    public void setName(String name) {
        this.bbb.setName(name);
    }

    public String getName() {
        return this.bbb.getName();
    }

    @Override
    protected AAA clone(){
        AAA aaa = null;
        try {
            aaa = (AAA) super.clone();
        }catch (CloneNotSupportedException e){
            e.printStackTrace();
        }
        return aaa;
    }
}

深拷贝

实现深拷贝,把指定的对象里面的对象实例化出来就可以了。

public class AAA implements Cloneable {
    private BBB bbb = new BBB();

    public void setName(String name) {
        this.bbb.setName(name);
    }

    public String getName() {
        return this.bbb.getName();
    }

    @Override
    protected AAA clone(){
        AAA aaa = null;
        try {
            aaa = (AAA) super.clone();
            aaa.bbb = new BBB();
        }catch (CloneNotSupportedException e){
            e.printStackTrace();
        }
        return aaa;
    }
}

原型模式

其实拷贝的过程就是原型模式,是用于创建重复的对象,同时又能保证性能。

使用场景

1.在需要一个类的大量对象的时候,使用原型模式是最佳选择,因为原型模式是在内存中对这个对象进行拷贝,要比直接new这个对象性能要好很多,在这种情况下,需要的对象越多,原型模式体现出的优点越明显。
2.如果一个对象的初始化需要很多其他对象的数据准备或其他资源的繁琐计算,那么可以使用原型模式。
3.当需要一个对象的大量公共信息,少量字段进行个性化设置的时候,也可以使用原型模式拷贝出现有对象的副本进行加工处理。

相关文章

  • 原型模式

    一、 原型模式 原型模式:用原型实指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 涉及浅拷贝与深拷贝问题。...

  • 初始设计模式之原型模式

    原型模式是什么? 原型模式怎么用?浅拷贝深拷贝 原型模式再理解 一、原型模式是什么? ​ 原型模式是一种创建型设计...

  • 设计模式之原型模式(Prototype)

    1. 什么是原型模式? 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象 简单来说, 原型模式就是拷贝...

  • 设计模式系列-原型模式,备忘录模式

    原型模式 定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式已经与Java融为一体...

  • 设计模式之原型模式

    原型模式 原型模式(prototype)是指原型实例指向对象的种类,并且通过拷贝这些原型创建新的对象 模式作用: ...

  • 原型模式及深浅拷贝详解

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

  • 创建型模式5-原型模式

    创建型模式5-原型模式 原型模式(prototype) 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创...

  • 原型模式C++

    原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式结构图 原型模式基本代码 原型...

  • Android Kotlin 设计模式之原型模式

    前言 继续填坑,这次是原型模式 什么是原型模式 首先在java里面是存在深拷贝和浅拷贝的 深拷贝: 完全复制生成一...

  • 设计模式之原型模式

    原型模式 Prototype Intro 简介 原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新...

网友评论

      本文标题:拷贝与原型模式

      本文链接:https://www.haomeiwen.com/subject/qrylsktx.html