先来说一下原型模式的应用场景
package com.设计模式.原型模式.demo;
/**
* Created with IntelliJ IDEA.
*
* @Author: Coderfine
* @Date: 2023/10/08/19:03
* @Description:这是一个三好学生的奖状类
*/
public class Citation implements Cloneable{
//三号学生的姓名
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public Citation clone() throws CloneNotSupportedException {
return (Citation) super.clone();
}
public void show(){
System.out.println(name+"同学......................");
}
}
测试类
package com.设计模式.原型模式.demo;
/**
* Created with IntelliJ IDEA.
*
* @Author: Coderfine
* @Date: 2023/10/08/19:05
* @Description:使用场景,创建对象比较复杂的话可以使用原型对象来进行克隆
*/
/*
这是一个String类型的演示
*/
public class Test {
public static void main(String[] args) throws CloneNotSupportedException {
//创建原型对象
Citation citation = new Citation();
//克隆奖状对象
Citation clone = citation.clone();
citation.setName("alibaba");
clone.setName("范小勤");
clone.show();
citation.show();
}
}
就好像有一个模板,让后自己把业务的逻辑往里面放
深克隆实际就是把文件直接复制一份,浅克隆就是建立一个快捷方式,对象的clone是一种深克隆