当前位置:网站首页>GoF23—原型模式

GoF23—原型模式

2022-06-26 06:03:00 酷小亚

原型模式:

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式

在这里插入图片描述

代码如下:

package prototype.Demo1;

import java.util.Date;

/** * 1、实现一个接口 Cloneable * 2、重写一个方法 * */

public class Video  implements Cloneable {
    
    private String name;
    private Date createTime;

    @Override
    protected Object clone() throws CloneNotSupportedException {
    
        return super.clone();
    }

    public Video() {
    
    }

    public Video(String name, Date createTime) {
    
        this.name = name;
        this.createTime = createTime;
    }

    public String getName() {
    
        return name;
    }

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

    public Date getCreateTime() {
    
        return createTime;
    }

    public void setCreateTime(Date createTime) {
    
        this.createTime = createTime;
    }

    @Override
    public String toString() {
    
        return "Video{" +
                "name='" + name + '\'' +
                ", createTime=" + createTime +
                '}';
    }
}

package prototype.Demo1;

import javax.xml.crypto.Data;
import java.util.Date;

/** * 客户端:克隆 */
public class Bilibli {
    
    public static void main(String[] args) throws CloneNotSupportedException {
    
        //原型对象

        Date date = new Date();
        Video v1 = new Video("酷小", date);
        System.out.println("v1=>"+v1);
        System.out.println("v1=>hash"+v1.hashCode());

        //让v2克隆v1
        Video  v2 = (Video) v1.clone();
        System.out.println("v2=>"+v2);
        System.out.println("v2=>hash"+v2.hashCode());

    }
}

在这里插入图片描述

原网站

版权声明
本文为[酷小亚]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_45737330/article/details/125457028