原型模式
2022-07-05 15:56:08 13 举报
AI智能生成
GoF23之原型模式
作者其他创作
大纲/内容
定义
如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式(Prototype Design Pattern),简称原型模式。
使用场景
对象中的数据需要经过复杂的计算才能得到(比如排序、计算哈希值)
从 RPC调用其他服务才能获取结果
通过http网络请求获取数据
从数据库读取
从文件系统读取
原型模式的实现方式
浅拷贝
定义
浅拷贝只会复制对象中基本数据类型数据和引用对象的内存地址,不会递归地复制引用对象,以及引用对象的引用对象
实现
如果是基本属性,复制值
如果是引用属性,复制其引用
深拷贝
定义
如果是基本属性,复制其值
如果是引用属性,重新创建一个对象进行拷贝
实现方式
对象拷贝
原理
遍历对象的属性,如果是基本属性,复制值,如果是引用属性,则创建对象,需要递归执行该操作,直到遍历所有属性
序列化实现
案例
缺点
更加耗时,更加耗内存空间。
0 条评论
下一页