用原型实例指定创建对象的种类,并且通过复制这些原型创建新的类
主要设计的知识:
1.所有可以克隆的累都必须实现Cloneable.然后重写clone方法
2.克隆对象时,原始对象的构造方法不被执行
3.浅复制:object类的clone方法只是复制对象的于是数据类型,如 int 、float、string,对于数组和对象引用等是不会复制的(即object默认的clone只对数组和引用复制内容,而其再内存中是同一个地址)
4.深复制:对数组,对象引用也做复制(最后复制出的数组和对象均各自又各自的内存地址)
使用场合
1.产生对象过程比较复杂,初始化需要很多资源时。
2.希望框架原型与产生对象分开时
3.同一个对象可能会供其他调用者同时调用访问时