浅谈Vue项目中用到的设计模式

本文探讨了在Vue项目中如何应用设计模式,包括单例模式、工厂模式、装饰器模式、策略模式和发布订阅者模式。这些模式有助于提高代码的可重用性、可扩展性和可维护性。例如,Vue的axios实例和全局状态管理store就是单例模式的应用;工厂模式用于简化对象创建;装饰器模式常用于表单验证;策略模式在表单验证中也有体现;发布订阅者模式用于组件间的通信。
摘要由CSDN通过智能技术生成

什么是设计模式:
设计模式的原则是找出程序中的变化,并将变化封装起来,实现高效的可复用性。核心在于意图,而不在结构。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性。我们使用设计模式的最终目的是为了实现代码的高类聚低耦合。你是否思考过这样的一个问题,如何让代码写的更有健壮性,其实核心在于把握变与不变。确保变的部分更加灵活,不变的地方更加稳定,而使用设计模式可以让我们达到这样的目的。
下面来总结一下vue项目中或者说工作中常用的设计模式。

单例模式

单例模式:确保一个类只有一个实例对象,并提供一个全局访问点供其访问。
优点:适用于单一对象,只生成一个对象实例,避免频繁创建和销毁实例,减少内存占用。
缺点:不适用动态扩展对象。
场景:登录浮窗、Vue中的axios实例(我们对axios进行请求拦截和响应拦截,多次调用封装好的axios但是仅设置一次,封装好的axios导出就是一个单例)、全局态管理 store、线程池、全局缓存

  function Person (name, age) {
   
    this.name = name
    this.age = age
    this.info = function () {
   
      console.log(`我的名字叫${
     this.name}, 我今年${
     this.age}`)
    }
  }
  Person.getInstance = function (name, age) {
   
    if (!this.instance) {
   
      this.instance = new Person(name, age)
    }
    console.log(this.instance)
    return this.instance
  }
  let b1 = Person.getInstance('单例1', 18)
  let b2 = Person.getInstance('单例2', 18)
  b1.info()
  b2.info()

工厂模式

工厂模式:工厂模式是用来创建对象最常见的一种设计模式。不必暴露构造函数的具体逻辑,而是将逻辑封装在一个个函数之中,那么这个构造函数就可以被看做工厂。
场景: 有构造函数的地方,写了大量的构造函数代码,调用了大量的new操作符。
优点:通过工厂模式,我们可以快速创建大量相似对象,没有重复代码。
缺点:工厂模式创建的对象属于Object,无法区分对象类型,这也是工厂模式没有广泛使用的原因。

 function Factory (name, age) {
   
   this.name = name;
   this.age = age;
   // 或者
   // let obj = {}
   // obj.name = name
   // obj.age = age
   // return obj
 }
 Factory.prototype.
  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值