13.原型模式

原型模式(Prototype Pattern):Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

原型模式的优点:

  • 性能优良
  • 逃避构造函数的约束

原型模式的使用场景

  • 资源优化场景
  • 性能和安全要求的场景
  • 一个对象多个修改者的场景

Object类的clone方法的原理是从内存中(具体地说就是堆内存)以二进制流的方式进行拷贝,重新分配一个内存块,构造函数没有被执行也是非常正常的了。

Object类提供的clone方法只是拷贝本对象,其对象内部的数组、引用对象等都不拷贝,还是指向原生对象的内部元素地址,这种拷贝就叫做浅拷贝。

内部的数组和引用对象不拷贝,元素类型如int、long、char等都会被拷贝,但是对于String类型,Java就希望你把它认为是基本类型,它的clone方法是直接从Object继承的,处理机制也比较特殊,通过字符串池(stringpool)在需要的时候才在内存中创建新的字符串。

results matching ""

    No results matching ""