设计模式<创建型> | 原型模式
原型模式(Prototype Pattern)
如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,就可以可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式,来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式,简称原型模式。
结构图:
角色:
- 原型对象(prototype):需要进行复制的对象。
适用场景:
- 需要基于现有的对象信息进行处理。
- 初始化类数据需要消费非常多的资源时。
优点:
- 可以快速复制原型对象,避免反复运行初始化代码。
- 基于原型可以方便地生成复杂对象。
缺点:
- 如果原型过于复杂会导致复制代码过于繁琐。
代码(C#)
1 |
|
最后
深拷贝和浅拷贝。浅拷贝只会复制对象中基本数据类型数据和引用对象的内存地址,不会递归地复制引用对象,以及引用对象的引用对象……而深拷贝得到的是一份完完全全独立的对象。所以,深拷贝比起浅拷贝来说,更加耗时,更加耗内存空间。
设计模式<创建型> | 原型模式
http://example.com/posts/22548.html