zoukankan      html  css  js  c++  java
  • 设计模式--原型模式

    原型模式

    原型模式定义如下:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。
    需要注意一点的是,进行clone操作后,新对象的构造函数没有被二次执行,新对象的内容是从内存里直接拷贝的。
    f1.png

    三、原型模式的优点和使用场景

    优点:
    1、性能极佳,直接拷贝比在内存里直接新建实例节省不少的资源;
    2、简化对象创建,同时避免了构造函数的约束,不受构造函数的限制直接复制对象,是优点,也有隐患,这一点还是需要多留意一些。
    使用场景:
    1、对象在修改过后,需要复制多份的场景。如本例和其它一些涉及到复制、粘贴的场景;
    2、需要优化资源的情况。如,需要在内存中创建非常多的实例,可以通过原型模式来减少资源消耗。此时,原型模式与工厂模式配合起来,不管在逻辑上还是结构上,都会达到不错的效果;
    3、某些重复性的复杂工作不需要多次进行。如对于一个设备的访问权限,多个对象不用各申请一遍权限,由一个设备申请后,通过原型模式将权限交给可信赖的对象,既可以提升效率,又可以节约资源。

    四、原型模式的缺点

    1、深拷贝和浅拷贝的使用需要事先考虑周到;
    2、某些编程语言中,拷贝会影响到静态变量和静态函数的使用。






    归类 : Python--设计模式

  • 相关阅读:
    [前端开发]Vue组件化的思想
    [前端开发]数组中哪些方法是响应式的
    冒泡排序和选择排序
    css定位属性的运用
    JS拖拽效果的原理及实现
    Js函数的形参和实参详解
    Js中的For循环详解
    什么是盒模型?
    关于使用JS去除URL中的指定参数问题,js 对url进行某个参数的删除,并返回url
    听力的尝试
  • 原文地址:https://www.cnblogs.com/lz1996/p/11970962.html
Copyright © 2011-2022 走看看