说说你了解的设计模式

本文介绍了设计模式中的单例模式、工厂函数、构造模式、原型模式、混合模式和策略模式。单例模式减少全局变量污染,实现方式包括懒汉式和饿汉式。工厂函数解决代码复用,但存在可读性和空间问题。构造模式改进了工厂模式的可读性,原型模式解决空间问题但对引用类型有影响。混合模式结合两者优点。策略模式通过封装不同算法,避免冗余代码,提升代码灵活性。
摘要由CSDN通过智能技术生成
单例模式:

**好处:**减少全局变量,全局对象被污染问题

实现:

  • 懒汉式

    let ShopCar = (function () {
         
      let instance;
      function init() {
         
        /*这里定义单例代码*/
        return {
         
          buy(good) {
         
            this.goods.push(good);
          },
          goods: [],
        };
      }
      return {
         
        getInstance: function () {
         
          if (!instance) {
         
            instance = init();
          }
          return instance;
        },
      };
    })();
    let car1 = ShopCar.getInstance();
    let car2 = ShopCar.getInstance();
    car1.buy('橘子');
    car2.buy('苹果');
    console.log(car1.goods); //[ '橘子', '苹果' ]
    console.log(car1 === car2); // true
    
  • 饿汉式

面试题 -> 实现Storage,使得该对象为单例,基于 localStorage 进行封装。实现方法 setItem(key,value) 和 getItem(key)

class Storage {
   
  static getInstance() {
   
    if(!Storage
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值