首页 > 其他分享 >原型模式 (设计模式)

原型模式 (设计模式)

时间:2024-02-29 17:45:45浏览次数:199  
标签:对象 JavaScript 模式 原型 拷贝 设计模式

对于熟悉JavaScript 语言的前端程序员来说,原型模式是一种比较常用的开发模式,即使JavaScript 引入了类的概念,但它也知识基于原型语法糖而已。 不过如果你使用的是java  C ++ 你就很少使用原型模式。 

原型模式的原理和应用: 

如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段相同)在这种情况下可以使用原型模式。

为和对象的创建成本比较大?

实际上对象的创建包含内存申请,给成员变量的赋值,本身不会花费它多的时间。 或者对于大多数业务来说,这点时间是可以完全忽略的,应用一个复杂的模型,只得到了一点点性能的提升,这就是所谓的过度设计。 

但是如果对象中的数据是经过复杂的计算等到的,比如排序,计算哈希值。或者需要从rpc 网络,数据库,文件等非常慢的IO 中读取,这种情况下,我们就可以利用原型模式,从其他已有对象之际拷贝得到。 而不是创建对象的时候,都重复的执行这些复杂的操作。 

深拷贝,浅拷贝,

深拷贝的两种实现方式,1, 递归,2. 序列换反序列化

标签:对象,JavaScript,模式,原型,拷贝,设计模式
From: https://www.cnblogs.com/dousil/p/18044908

相关文章

  • 设计原则&模式:六大设计原则
     单一职责原则(SRP:SingleReposibility Principle)定义:一个类或者模块只负责完成一个职责。 里氏替换原则(LSP:LiskovSubstitutionPrinciple)定义:所有使用父类的地方可以使用子类的对象,子类可以扩展父类的功能,但是不能替换父类的功能。如果需要替换父类功能,建议——多用组合,......
  • 单例模式 上
    为什么要用单例单例模式理解起来非常容易一个类只允许创建一个对象(或者实例),那这个类就是一个单例,这种设计模式叫做单例设计模式。简称单例模式1.解决线程安全问题2.表示全局唯一比如配置信息类,自系统中,我们只有一个配置文件,当这个配置文件加载到内存之后,以对象的形式存在,理......
  • Redis哨兵模式部署
    Redis哨兵模式部署集群架构这里我们搭建一个三节点形成的Sentinel集群,来监管Redis主从集群,架构如下:这里在3台服务器中开启3个redis实例,信息如下:ipport角色172.18.1.106379/27001master172.18.1.116379/27001slave172.18.1.136379/27001slave安装r......
  • 访问者模式
    简介访问者模式(VisitorPattern)是一种行为型设计模式,用于在不改变被访问元素的类的前提下,定义对这些元素的新操作。该模式通过将算法与数据结构分离,使得可以在不修改数据结构的情况下,增加新的操作。结构访问者(Visitor):定义了对于每个元素类所要执行的操作。这些操作可以是不同......
  • 桥接模式(bridge pattern)
    定义:将抽象部分与它的实现部分分离,使他们都可以独立地变化桥接模式使用一种巧妙的方式处理多层继承存在的问题,用抽象关联来取代传统的多层继承,将类之间的静态继承关系转变为动态的组合关系,使得系统更加灵活,并易于扩展,有效的控制了系统中的类的个数(避免了继承层次的指数级爆炸),将两......
  • 中介者模式
    简介中介者模式(MediatorPattern)是一种行为型设计模式,旨在减少对象之间的直接通信,通过引入一个中介对象来促进对象之间的松耦合通信。在这种模式中,对象之间不再直接相互引用,而是通过中介者对象来进行通信。中介者模式通常包含以下几个角色:中介者(Mediator):负责定义接口,用于与各......
  • 实战上,通过一段ID 生成器代码,学习如何发现,代码质量的问题(设计模式)
    ID生成器的需求背景介绍ID中文翻译为标识Identifier,这个概念在生活,工作中随处可见,比如身份证、商业条形码、二维码、车牌号、驾照号。聚焦到软件开发中,ID常用来标识一些业务信息的唯一标识,比如订单的单号或者数据库中的唯一主键,比如地址中ID字段(实际上时没有业务含义的,对用......
  • 迭代器模式
    简介迭代器模式是一种行为型设计模式,它用于提供一种顺序访问聚合对象(如列表、集合、数组等)中的元素,而不需要暴露该对象的内部表示。这种模式将迭代操作从聚合对象中分离出来,使得可以在不同的聚合对象上使用相同的迭代逻辑。在迭代器模式中,通常会有两个主要角色:迭代器(Iterator......
  • 解释器模式
    简介解释器模式(InterpreterPattern)是一种行为设计模式,用于定义一种语言的语法,并提供一个解释器来解释该语言中的表达式。这种模式通常用于处理特定类型的问题,例如解释一种特定的语言或表示法。结构解释器模式通常包含以下角色:抽象表达式(AbstractExpression):定义了一个抽象......
  • 命令模式
    简介命令模式是一种行为设计模式,它允许将请求或操作封装为单独的对象。这些请求可以被参数化,队列化,记录日志,以及支持撤销操作。以下是命令模式的几个关键角色:命令(Command):抽象命令接口,定义了执行命令的方法,通常包含一个execute()方法。具体命令(ConcreteCommand):实现......