设计模式之七:原型模式
2017-04-17 18:12
162 查看
设计模式之七:原型模式
http://www.taidous.com/thread-49589-1-1.html (出处: 【泰斗社区】-专注互联网游戏和应用的开发者平台)
优点:
1、性能优良,原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好的体现其优点
2、逃避构造函数的约束
使用场景:
1、资源优化场景:类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等;
2、性能和安全需要的场景 :通过new产生一个对象需要非常繁琐的数据准备货访问权限,则可以使用原型模式
3、一个对象多个修改者的场景:一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象共调用者使用。
原型模式通用代码:
http://www.taidous.com/thread-49589-1-1.html (出处: 【泰斗社区】-专注互联网游戏和应用的开发者平台)
原型模式(Prototype Pattern): 定义:Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.(用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象)。 通用类图如下: |
1、性能优良,原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好的体现其优点
2、逃避构造函数的约束
使用场景:
1、资源优化场景:类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等;
2、性能和安全需要的场景 :通过new产生一个对象需要非常繁琐的数据准备货访问权限,则可以使用原型模式
3、一个对象多个修改者的场景:一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象共调用者使用。
原型模式通用代码:
public class PrototypeClass : Cloneable { //重写父类object的方法 public override PrototypeClass clone() { PrototypeClass prototypeClass = null; try { prototypeClass = (PrototypeClass)base.clone(); } catch(Exception e) { //异常处理 } return prototypeClass; } }
相关文章推荐
- 设计模式学习笔记(六)——Prototype原型模式
- 设计模式学习笔记(四)——Prototype原型
- 设计模式就是来解决应变---原型(prototype)
- 设计模式与泡mm的关系之Prototype原型模式及原型模式的再思考
- 设计模式学习笔记(六)——Prototype原型模式
- 设计模式之Prototype(原型)
- (创建模式)设计模式之Prototype(原型)
- 设计模式原型模式(Prototype)- 面馆里的菜单
- 设计模式之Prototype原型设计模式
- 设计模式之原型法(ProtoType)----对象创建型模式
- 设计模式原型模式(Prototype)- 面馆里的菜单
- 设计模式袖珍版 连续转载之 - Prototype(原型)
- C#设计模式之原型(ProtoType)
- C#设计模式之原型(ProtoType)
- 设计模式原型模式(Prototype)- 面馆里的菜单
- 设计模式之Prototype(原型)
- C#设计模式之原型(ProtoType)
- 设计模式之Prototype(原型)
- 设计模式(3)-原型模式(Prototype)
- 设计模式(5)-原型模式(Prototype)