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

原型模式

1. 使用场景

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

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

2. 注意事项

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

3. 典型场景

  1. 从数据库表中加载了大量的静态配置参数,作为对象的内部资源,此时创建新对象时可以利用原型模式省去访问数据库的步骤。
相关推荐
世人万千丶14 小时前
鸿蒙Flutter Flex多子组件权重分配
学习·flutter·华为·harmonyos·鸿蒙
咖啡八杯14 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
圣光SG17 小时前
Servlet学习笔记
笔记·学习·servlet
大数据新鸟17 小时前
设计模式四大基本原则
设计模式
@Mike@19 小时前
02-数据库学习笔记(SQL引擎)
数据库·笔记·学习
六点_dn19 小时前
RabbitMQ学习笔记-定义与作用
笔记·学习·rabbitmq
我的xiaodoujiao20 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
世人万千丶21 小时前
鸿蒙Flutter Flexible与Expanded的区别
学习·flutter·harmonyos·鸿蒙
YM52e1 天前
鸿蒙Flutter Center居中组件:Align对齐详解
android·学习·flutter·华为·harmonyos·鸿蒙
南一Nanyi1 天前
依赖注入和控制反转
前端·设计模式·nestjs