原型模式
1. 使用场景
对象的创建成本比较大,为了避免重复执行创建过程,可以从已有对象(原型)拷贝一份,作为新对象的初始版本,再做少量修改即可。
总结:创建成本高、差异很小,需要同时满足这两个条件,缺一不可。
2. 注意事项
- 如果对象内部存在指针或引用,需要注意深拷贝与浅拷贝的问题(网上一些文章,或许是为了显得文章内容很丰富,将大量篇幅放在讨论深浅拷贝的问题上了,实属本末倒置,容易误导新手);
- 不适合场景:对象中存在不可拷贝的属性(比如锁、数据库连接)。
3. 典型场景
- 从数据库表中加载了大量的静态配置参数,作为对象的内部资源,此时创建新对象时可以利用原型模式省去访问数据库的步骤。