首页 > 其他分享 >创建型:构造器模式

创建型:构造器模式

时间:2023-03-02 15:45:20浏览次数:28  
标签:name 对象 创建 age 模式 实例 构造

简介

构造器模式,也被称为建造者、生成器模式,是设计模式中比较容易理解的模式之一。

定义:将一个对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 定义不太容易理解,简单的说就是构造器模式中的对象的属性是通过一个构造器来设置的,最后返回一个不同属性的对象。 

在js中我们在创建对象时可以使用字面量的形式来创建对象

let o = { name: '', age: ''}

如果我们需要创建类似这样结构的对象创建100个,我们通常会通过构造函数来生成,如下代码

function Person(name,age){
  this.name = name;
  this.age = age;
}
let person1 = new Person("mjj",28);
let person2 = new Person("alex",25);

构造器模式 就是在构造函数中 初始化实例对象属性。上面的代码中Person就是一个构造器。在这个构造器中,我们能够观察到:实例的共同点都有name、age属性,不同点name、age的属性值,各个实例不同,由此可见构造器封装了实例对象实例的“变”与“不变”

在 JavaScript 中,我们使用构造器去初始化对象,就是应用了构造器模式,通常这种函数我们叫构造函数。

构造器模式本质上是抽象了每个实例对象的变与不变,变的是各个实例属性值的不一样,不变的是各个对象的结构。

小结

  1. 构造器模式:封装不变的共性(属性),变化的东西(属性的值),关注对象实例问题。
  2. 在JavaScript 中,我们使用构造函数去初始化对象,就是应用了构造器模式。

标签:name,对象,创建,age,模式,实例,构造
From: https://www.cnblogs.com/longbensong/p/17172012.html

相关文章

  • 21-中介者模式
    21-中介者模式概念中介者模式,又叫调停者模式(mediator),用一个中介对象来封装一系列的对象交互。中介者使个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变......
  • 轻松玩转makefile | 变量与模式
    前言本文通过简单的几个示例,以及对同一个Makefile进行几个版本的迭代,帮助快速的理解变量和模式规则的使用。1、回顾在上一篇文章中,我们使用Makefile编译fun.c和main.c这......
  • 设计模式与前端工程师
     前端要不要学习设计模式始终认为每个行业都有自己的特点,各自的专业性。一个开发工程师如果不知道电脑是哪些基本硬件组成,那么我们大概率都会认为这个人非常不专业。......
  • 通过手动创建hibernate工厂,自动生成表,完成数据库备份还原功能
    最近做toB、toG业务,普遍要去适配各种国产数据库,所以不得不用hibernate,过去这么多年一直都是用mybatis+mysql,现在重拾hibernate,专注跨数据库,感兴趣的加关注。需求背景:最近......
  • JAVA设计模式之单例模式
    设计模式设计模式(DesignPattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及......
  • 设计模式2——创建者模式
    ​创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为:......
  • 解释器模式
    解释器模式是一种行为型设计模式,它可以用来定义和解释一种语言的文法,并根据文法对句子进行解释。解释器模式通常用于编译器,表达式计算,正则表达式,机器人等领域。它的基本思......
  • Redis哨兵模式
    含义反客为主的自动版,检测主服务器是否宕机,如果宕机后会立即选择一个主服务器下的从服务器再当选主服务器  操作步骤1. 配置哨兵,填写内容自定义的/myredis目录下......
  • js异步编程的三种模式
    写在前面javascript语言的执行环境是"单线程"(singlethread),就是指一次只能完成一件任务。如果有多个任务,就必须排队,等前面一个任务完成,再执行后面一个任务,以此类推。......
  • 使用venv创建虚拟环境
    使用venv创建虚拟环境python3.3之后venv已经作为标准库嵌入到了python中,而之前的版本需要借助virtualenv这个第三方库来实现。在终端中使用python-mvenv-h可以显示ve......