设计模式

/**
 * 原型
 * @author swt
 */
public class Prototype implements Cloneable {
    @Override
    protected Prototype clone() {
        Prototype prototype = null;
        try {
            prototype = (Prototype) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return prototype;
    }
}

  

/**
 * 原型实现类
 * @author swt
 */
public class ConcretePrototype extends Prototype {
    public void show() {
        System.out.println("原型模式实现类 " + this.toString());
    }
}

  

public class Main {
    public static void main(String[] args) {
        ConcretePrototype concretePrototype = new ConcretePrototype();
        for (int i = 0; i < 10; i++) {
            ConcretePrototype clonePrototype = (ConcretePrototype) concretePrototype.clone();
            clonePrototype.show();
        }
    }
}

  输出:

原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@4554617c
原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@74a14482
原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@1540e19d
原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@677327b6
原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@14ae5a5
原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@7f31245a
原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@6d6f6e28
原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@135fbaa4
原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@45ee12a7
原型模式实现类 com.swt.dp.factory.prototype.ConcretePrototype@330bedb4

  

原文地址:https://www.cnblogs.com/song-wentao/p/7692538.html