首页 > 其他分享 >设计模式1——单例模式

设计模式1——单例模式

时间:2023-03-16 15:13:06浏览次数:44  
标签:getAge return name student age 模式 sex 单例 设计模式

单例模式:
在使用构造函数时,保证全局只有一个new 出来的对象,后续无论如何调用,都是显示为第一次构造的对象;需更改内部属性,可以通过提供函数接口更改
核心:
确保只有一个实例,并提供全局访问

`
class student1{
constructor({name,age,sex}){
this.name = name;
this.age = age;
this.sex = sex;
}
getName(){
return this.name
}
getAge(){
return this.age
}
setName(name){
this.name = name
}
setAge(age){
this.age = age
}
}

class student2 extends student1 {
constructor(obj){
super(...arguments)
}
setAge(age){
super.setAge( age + '岁' )
}
getAge(){
let age = super.getAge()
return typeof age == 'string' ? age: age + '岁'
}
}

// 使用student2进行设计单例模式

var student = (function (){
var stu = null;
return function (obj) {
if(!stu){
stu = new student2(obj)
}
return stu
}
})()

let s1 = student({
name:'小马',
age: 33,
sex: "女"
})
console.log("1年纪是", student().getAge()) // 33

let s2 = student({
name:'小刚2',
age: 133,
sex: "男女未知"
})
console.log("2年纪是", s2.getAge()) // 33
`

在这里例子中(稍微繁琐加了extends功能);无论如何调用student函数,其返回的student2实例永远都是那一个。

标签:getAge,return,name,student,age,模式,sex,单例,设计模式
From: https://www.cnblogs.com/MrZhous/p/17222620.html

相关文章

  • WEB攻击模式库之命令注入学习总结
    1.命令注入的概念(what)1.1.有外部输入,外部输入校验不严格1.2.和命令语句结合1.3系统调用API执行2.注入条件和防范2.1.命令直接可控(无注入,防范:白名单)2.2.命令参数可......
  • 25-设计模式总结
    25-设计模式总结分类设计模式可以分为3类:创建型模式结构型模式行为型模式创建型模式抽象工厂模式提供一个创建一系列或相关依赖对象的接口,而无需指定他们具体的类......
  • 单核无操作系统如何实现任务并行运行demo之ardiuno读取MPU6050进行oled显示和控制ws28
    实物演示​​视频请转向哔站​​1.起源一直想做一个多种模式显示的灯阵控制小玩意作为床头灯,这样每次一个人在乌漆嘛黑的卧室刷手机时能够给自己带来一丝暖意!!!此外在......
  • 【设计模式】外观模式
    1.外观模式(FacadePattern)的定义外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模式时,我们创建了一个统......
  • Linux进入单用户模式:无密码登录root
    进入单用户模式可以做哪些操作:无密码登录root用户,可以修改密码(passwd),可以查看编辑文件等操作Linux进入单用户模式详细请看:https://www.cnblogs.com/sheepboy/p/17218500......
  • 前端设计模式——迭代器模式
    迭代器模式(IteratorPattern):提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。在JavaScript中,可以使用迭代器模式来操作数组或类数组对象。在......
  • 宝塔部署history模式的vue3项目
    前置条件:服务器、域名、备案、项目首先进入宝塔点击左侧的网站,然后点击添加站点 填入域名,点击提交,宝塔会自动帮忙创建一个根目录到该根目录,把打包后的vue项目放......
  • 详解shell语法检查模式
    启用verbose调试模式在进入本指导的重点之前,让我们简要地探索下 verbose模式。它可以用-v调试选项来启用,它会告诉 shell 在读取时显示每行。要展示这个如何工作,下......
  • oop设计模式
    设计模式软件设计模式是一套反复使用,经验性的总结,具有一定普遍性,可以反复使用1.软件设计原则1.1开闭原则对拓展开放,对修改关闭。在程序需要进行拓展时,不去修改原有的......
  • SMOKE多模式排放清单处理技术及EDGAR/MEIC清单制作与VOCs排放量核算
    大气污染问题既是局部、当地的,也是区域的,甚至是全球的。本地的污染物排放除了对当地造成严重影响外,同时还会在动力输送作用下,极大地影响下风向地区的大气环境状况。数值模......