模式定义
原型模式允许你通过复制现有的实例来创建新的实例(在Java中,这通常意味着使用clone()方法,或者反序列化)。
一个生动的例子
原型接口:
public interface Prototype extends Cloneable {
}
原型实现类:
class ConcretePrototype implements Prototype {
private String userName;
private Integer age;
public ConcretePrototype(String userName, Integer age) {
System.out.println("constructor...");
this.userName = userName;
this.age = age;
}
@Override
protected ConcretePrototype clone() throws CloneNotSupportedException {
return (ConcretePrototype) super.clone();
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "ConcretePrototype [userName=" + userName + ", age=" + age + "]";
}
}
测试类/客户端类:
public class PrototypeTest {
public static void main(String[] args) throws CloneNotSupportedException {
ConcretePrototype concretePrototype = new ConcretePrototype("EagleLi", 23);
System.out.println(concretePrototype);
ConcretePrototype concretePrototypeClone = concretePrototype.clone();
concretePrototypeClone.setAge(concretePrototypeClone.getAge() + 1);
System.out.println(concretePrototypeClone);
}
}
---------------------
转载,仅作分享,侵删
作者:EagleLi1
原文:https://blog.csdn.net/qq_21687635/article/details/85233929
|
|