• 设计模式02 原型模式


    原型模式(Prototype)定义:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。

    在Java中,通过实现Cloneable接口中的clone()方法,可以方便的实现原型模式,具体代码如下:

    原型类:

     1 public class Realizetype implements Cloneable {
     2     public int x;
     3     public Object obj;
     4 
     5     Realizetype() {
     6         System.out.println("具体原型创建成功!");
     7     }
     8 
     9     public Realizetype(int x, Object obj) {
    10         this.x = x;
    11         this.obj = obj;
    12     }
    13 
    14     public Object clone() throws CloneNotSupportedException {
    15         System.out.println("具体原型复制成功!");
    16         return (Realizetype) super.clone();
    17     }
    18 }

    调用方式:

     1 public class Client {
     2     public static void main(String[] args) throws CloneNotSupportedException {
     3         Realizetype obj1 = new Realizetype(20, "张三");
     4         Realizetype obj2 = (Realizetype) obj1.clone();
     5         System.out.println("obj1 == obj2?" + (obj1 == obj2));
     6 
     7         System.out.println("obj1.x == obj2.x?" + (obj1.x == obj2.x));
     8 
     9         System.out.println("obj1.obj == obj2.obj?" + (obj1.obj == obj2.obj));//说明是浅拷贝
    10     }
    11 }

    执行结果:

    上面第9行,执行结果是true,说明这种方式复制的对象属于浅拷贝。

  • 相关阅读:
    20个最佳的Java集合框架面试题目
    SSL/TLS 加密新纪元
    NServiceBus-日志
    NServiceBus-容器
    NServiceBus-网关和多站点分布
    NServiceBus-性能测试
    NServiceBus教程-持久化配置
    NServiceBus教程-持久化
    NServiceBus教程-NServiceBus和WCF
    NServiceBus教程-消息传递与处理
  • 原文地址:https://www.cnblogs.com/asenyang/p/12111018.html
Copyright © 2020-2023  润新知