• 设计模式


    /**
     * 原型
     * @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
    

      

  • 相关阅读:
    构造与析构的次序
    为什么析构函数常声明为虚函数
    偏移数组的二分查找
    字符串循环右移N位
    const 补充
    对类 sizeof
    指针与引用
    python小练习
    初学数据挖掘——相似性度量(一)
    每天进步一点点(二)
  • 原文地址:https://www.cnblogs.com/song-wentao/p/7692538.html
Copyright © 2020-2023  润新知