04.原型模式

原型模式

原型模式是一种对象的创建模式,面向的场景是需要创建多个同类对象,这些对象有着大部分的共同特征,使用原型将通性抽出来,克隆给新对象,然后给新对象设置个性的属性。

  1. 作用
    减少代码量,减少重复劳动。

  2. 怎么用

  • 核心是实现Cloneable接口,重写clone方法
  • 通用类图
prototype.PNG
  • 示例
    • 抽象原型类
public abstract class Prototype implements Cloneable {
    private String name;
    private String specialName;

    public String getName() {
        return name;
    }

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

    public String getSpecialName() {
        return specialName;
    }

    public void setSpecialName(String specialName) {
        this.specialName = specialName;
    }

    // 实际使用要将其封装成public方法给包外类使用
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}
* 具体原型类
public class ConcretePrototype extends Prototype {

}
* Client类
public class Client {

    public static void main(String[] args) throws CloneNotSupportedException {
        Prototype prototype = new ConcretePrototype();
        prototype.setName("mainName");
        List lp = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            Prototype p = (Prototype) prototype.clone();
            p.setSpecialName("special_" + i);
            lp.add(p);

        }
        for (Prototype p : lp) {
            System.out.println(p.getName() + " " + p.getSpecialName());
        }

    }

}

你可能感兴趣的:(04.原型模式)