设计模式 原形模式

简单概念

很好理解 就是提供一个对象的原型 然后提供clone方法使得我们可以很轻松的获得该对象的克隆体

简单例子

写一个原型类

//视频原型
//实现步骤
/*
1. 实现Cloneable接口
2. 重写clone方法
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Video implements Cloneable{
    private String name;
    private Date createTime;
    @Override
    protected Object clone() throws CloneNotSupportedException {
        Object obj = super.clone();
        Video v = (Video) obj;
        //将这个对象属性也进行克隆
        v.createTime = (Date) this.createTime.clone();
        return obj;
    }
}

测试使用

public class Bili {
    public static void main(String[] args) throws CloneNotSupportedException {
        Date date=new Date();
        Video v1=new Video("狂神说",date);
        //v1克隆v2
        Video v2 = (Video) v1.clone();
        System.out.println("v1=>"+v1);
        System.out.println("v2=>"+v2);
        //修改v2值v1也会被修改
        date.setTime(221312131);
        System.out.println("v1=>"+v1);
        System.out.println("v2=>"+v2);
    }
}

可以看到v1被修改了 但是v2并没有修改
实现了克隆的效果
设计模式 原形模式

上一篇:JSONModel - 字符串换转实体类


下一篇:《redis 基础》