栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

1、简介

定义:

如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段相同),这种情况下,我们可以利用已有对象(原型)进行复制(或者叫拷贝)的方式,创建一个或多个相同或相似的对象,以达到节省资源的目的,这种基于原型来创建对象的方式就叫做原型模式。用这种方式创建对象也不用知道对象创建的细节,比较高效。

功能:

通过克隆来创建新的对象实例为克隆出来的对象实例复制原型实例属性的值

本质:

通过克隆来创建新的对象实例

2、组成结构

Java 提供了对象的 clone() 方法,使用 Java 实现原型模式还是比较简单的

原型模式包含以下角色

Prototype 抽象原型类:声明了一个克隆自身的接口,约束想要克隆自己的类Realizetype 具体原型类:实现 Prototype 接口的类,它是可以被复制的对象,实现了克隆自身的功能访问类:首先获取到原型实例对象,然后通过原型实例克隆自身来创建新的对象实例

原型模式有两种实现方法,深拷贝和浅拷贝。

浅拷贝:只复制对象中基本数据类型数据和引用对象的内存地址,不会递归地复制引用对象,以及引用对象的引用对象深拷贝:得到的是一份完完全全独立的对象。

简单实现:

// 声明一个抽象原型类,克隆自身的接口
public interface Prototype {
    public Prototype clone();
}

// 具体实现类
public class Realizetype implements Prototype {
    public Prototype clone() {
        // 最简单的克隆,创建一个自身对象,没有属性就不赋值了
        Prototype prototype = new Realizetype();
        return prototype;
    }
}

// 访问类
public class ProtypeTest {
    private Prototype prototype;

    // 此处可以传入想要创建的 Prototype 类型
    public ProtypeTest(Prototype prototype) {
        this.prototype = prototype;
    }
    public void operation() {
        // 会需要创建原型接口的对象,可以自行操作
        Prototype newPrototype = prototype.clone();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710410.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号