【学习设计模式】原型模式

原型模式

1. 使用场景

对象的创建成本比较大,为了避免重复执行创建过程,可以从已有对象(原型)拷贝一份,作为新对象的初始版本,再做少量修改即可。

总结:创建成本高差异很小,需要同时满足这两个条件,缺一不可。

2. 注意事项

  1. 如果对象内部存在指针或引用,需要注意深拷贝与浅拷贝的问题(网上一些文章,或许是为了显得文章内容很丰富,将大量篇幅放在讨论深浅拷贝的问题上了,实属本末倒置,容易误导新手);
  2. 不适合场景:对象中存在不可拷贝的属性(比如锁、数据库连接)。

3. 典型场景

  1. 从数据库表中加载了大量的静态配置参数,作为对象的内部资源,此时创建新对象时可以利用原型模式省去访问数据库的步骤。
相关推荐
我命由我123454 分钟前
UI 设计 7 种排列方式
xml·学习·ui·html·产品运营·产品经理·学习方法
常驻客栈39 分钟前
B-深入理解计算机系统第3版之第8章:异常控制流
笔记·学习·常驻客栈·深入理解计算机系统·学习笔记‘’
lzhdim1 小时前
13、JavaScript事件循环机制 - JavaScript学习系列文章
开发语言·前端·javascript·学习·ecmascript
小杨不想秃头1 小时前
信息安全工程师考试
学习·网络安全
喜欢吃豆1 小时前
otes on LLMs 更新:一份更系统的大模型工程学习手册
学习·大模型·agent
AOwhisky1 小时前
Linux 网络服务架设学习笔记(第五期)——Web 服务(上篇):Apache HTTP Server——从静态到动态
linux·运维·服务器·笔记·学习·云计算·apache
绘梨衣5472 小时前
异步任务队列-学习2
爬虫·python·学习·任务队列
喜欢吃燃面3 小时前
HTTP协议深度解析:从请求响应到状态管理与安全传输
linux·网络协议·学习
我命由我123453 小时前
财务学习 - 权责发生制(应收应付制)
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·学习方法
MartinYeung54 小时前
[论文学习]小型代码语言模型中的潜伏代理行为研究
学习·语言模型·php