快就是慢,慢就是快。人生的道路上不要急于求成,要学会享受过程。
设计模式分类
设计模式分为创建型、结构型、行为型。原型模式是一种创建型的行为模式。
什么是原型模式
原型模式也称为克隆模式,也就是将已经创建好的对象作为原型,通过复制原型对象创建出相同或相似的对象。
有哪些角色
1.抽象原型类,规定了原型对象必须实现的接口。(在Java中就是Cloneable接口)。
2.具体原型类,也就是实现了抽象原型类(Cloneable)接口的对象,它是一个可复制的对象。
3.客户端,操作原型类进行对象复制。
深克隆和浅克隆
浅克隆
浅克隆就是新对象和原型对象的复杂数据类型指向同一个内存地址。
当新克隆的对象修改复杂数据类型数据时,原型对象也会被修改(基本数据类型不会被修改,这儿和值传递那块有点类似)。
使用super.clone()就是浅克隆。
深克隆
深克隆就是新对象和原型对象的复杂数据类型指向不同内存地址。
3种实现方式
一是克隆中再套克隆。
二是使用序列化技术将对象序列化到内存中,然后再反序列化完成克隆。
三是使用一些对象和json相互转化的框架(因为其内部是使用的深克隆技术),所以转换获得的对象也是深克隆后的对象。
原型(克隆)模式在Java中的应用
创建复杂对象(必须游戏新建一个角色,必然关联很多初始化的东西)。
暂时想不到别的了,以后补充吧。