设计模式(五):原型模式

141 阅读1分钟

介绍

原型模式(Prototype Pattern)属于创建型模式,是用于创建重复的对象,同时又能保证性能。它实现了一个原型接口,该接口用于创建当前对象的克隆。

优点

  • 直接拷贝内存二进制流,提高了性能
  • 逃避构造函数的约束

缺点

  • 必须实现cloneable接口
  • 类成员中有final类型的成员,这个类不能进行clone

应用

资源场景优化

实现

关键代码:实现 Cloneable 接口,重写 clone()

abstract class Animal implements Cloneable {

    protected String name;
    
    abstract void say();
    
    public String getName(){
       return name;
    }

    public void setName(String name) {
        this.name = name;
     }
  
    public Object clone() {
       Object clone = null;
       try {
          clone = super.clone();
       } catch (CloneNotSupportedException e) {
          e.printStackTrace();
       }
       return clone;
    }
 }
class Sheep extends Animal {

   public Sheep(){
     name = "sheep";
   }
 
   @Override
   public void say() {
      System.out.println("my name is "+this.name);
   }
}
class Demo{
  public static void main(String[] args) {
     Sheep sheep = new Sheep();  
     Sheep cloneSheep = (Sheep)sheep.clone();
     cloneSheep.setName("Dolly");
     sheep.say();
     cloneSheep.say();
   }
}

运行结果:

my name is sheep
my name is Dolly