首页 > 其他分享 >24. 设计模式

24. 设计模式

时间:2022-12-10 09:44:34浏览次数:32  
标签:24 function what unique console King let 设计模式

设计模式

设计模式(Design pattern) 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的 高内聚低耦合

单例模式

一个类只能创建一个对象

作用:可以快速方便的在整个项目中共享传递数据

function King(name){
    if(king.unique == undefined){
          this.name = name
          King.unique = this
       }else{
          return King.unique
    }
}
let k1 = new King("秦始皇")
//一但外界修改King.unique,则打破单例
//King.unique = undefined
let k2 = new King("武则天")
console.log(k1 == k2)
当已经创建对象时,再次创建无效,等于第一个创建的对象

实现:用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象。

//闭包实现单例
let fun = (function (name) {
        var unique
        function King(name) {
            this.name = name
        }
        if (unique == undefined) {
            unique = new King(name)
        }
        return function () {
            return unique
        }
    }("康熙"))

    let k1 = fun()
    let k2 = fun()
    console.log(k1 == k2)

打印结果:true

观察者模式(发布订阅者模式)

当主题发布消息时,所有的观察者都可以接收到该消息

主题调用函数,传递参数(数据信息),观察者定义函数

//观察者,订阅者
    let sub1 = {
        //game是一个公众号,
        //what就是公众号发给sub1的消息
        game:function(what){
            console.log("sub1->game:"+what);
        },
        girl:function(what){
            console.log("sub1->girl:"+what);
        }
    }

    let sub2 = {
        game:function(what){
            console.log("sub2->game:"+what);
        },
        boy:function(what){
            console.log("sub2->boy:"+what);
        }
    }

    let sub3 = {
        game:function(what){
            console.log("sub3->game:"+what);
        }
    }

    let sub4 = {
        nba:function(what){
            console.log("sub4->nba:"+what);
        }
    }

    //发布者,主题
    class Game{
        constructor(subs){
            this.subs = subs;
        }

        infor(what){
            this.subs.forEach(element => {
                element.game(what);
            });
        }
    }

    let g = new Game([sub1,sub2,sub3]);
    g.infor("今天王者荣耀皮肤5折");

标签:24,function,what,unique,console,King,let,设计模式
From: https://www.cnblogs.com/qianfanqf/p/16969923.html

相关文章

  • 【设计模式】我终于读懂了单例模式。。。
    单例设计模式介绍......
  • 设计模式-结构型模式
    结构型模式:将对象和类组装成较⼤的结构,并同时保持结构的灵活和⾼效。PS:博客根据it老齐大话设计模式课程课件进行整理,IT老齐视频学习网站:https://www.itlaoqi.com包含......
  • 创建型设计模式
    简单工厂方法定义为:简单工厂模式又称静态工厂方法模型,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂专门定义一个类来负责创建其他......
  • 关于手机24小时插电鼓包问题,安卓电池充电保护-智能充电/温控切断(Root方案)
    我手机电池已经鼓包了,为了以后换了新电池能够持久续航,我给手机装了AdvancedChargingController充电控制模块(简称acc)手机需要root(我用的是magisk)下载acc模块(有出国方式的......
  • javascript-代码随想录训练营day24
    77.组合题目链接:https://leetcode.cn/problems/combinations/题目描述:给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案......
  • Visual AssistX (x64) Version 10.9.2471 Cracked
    任何问题请反馈至邮箱:[email protected](随缘查看邮件)Anyporbs->[email protected]随番茄主版本更新,使用中有任何问题请反馈至邮箱说明1......
  • 设计模式及设计规则详解(1)
    设计模式什么是设计模式?是在系统设计中针对场景的一种方案,是解决功能逻辑开发的一种共性问题。设计模式学习的是什么?学习的是设计模式的思想,不能直接进行硬套设计原则......
  • MIT 6.824实验小记
    目录lab1lab2partA实现框架框架细节代码结构体定义Follower状态Candidate状态Leader状态partBlab1TODO:个人觉得lab1没啥好说的lab2虽然论文基本都看懂了,也挺好理解......
  • 3、设计模式—单例、工厂、代理、适配器、观察者
     1、 设计模式——单例模式 单例模式负责创建自己的对象,同时确保只有一个对象被创建。比如,我们要统计网站的访问用户数,在任何时候都只有一个对象在记录用户数,否则就可能......
  • 设计模式预热篇——6大基本原则
         本篇博客主要是复习设计模式的时候,对6大设计原则的总结,参考书籍《设计模式之禅》,讲设计模式的经典之作。     java编程的6大设计原则如下:   ......