原型模式:是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
调用者不需要知道任何创建的细节,不调用构造函数
属于创建型模式
不通过new 通过一个clone 方法得到和以前一样的对象‘
适用场景:类初始化消耗资源多
new产生的一个对象需要非常繁琐的过程(数据准备 访问权限等)
构造函数比较复杂
循环体中生产大量对象时
浅克隆:实现java的接口Cloneable,对于引用类型,复制的 字段的值 内存简单的copy 而不是对象里对应的元素和值 arraylist 默认实现了浅克隆
深克隆:通过java 字节流来实现 序列化和反序列化
怎么可以实现深克隆:序列化 转json
优点:性能优良,java自带的原型模式是基于内存二进制流的拷贝,比直接new 对象性能更好
可以使用深克隆方式保存对象的状态,使用原型模式将对象复制并且将其状态保存起,简化了创建的过程,
缺点:必须配备克隆方法
当对已经有的类进行改造的时候,需要修改代码 违背了开闭原则
深浅拷贝 需要运用的当
网友评论