跳到主要内容

谈谈设计模式

设计模式其实是比较抽象的概念,通过设计模式,在项目中应用可以提高代码更容易维护、以及复用性、可读性

  • 单例模式

  • 工厂模式

  • 代理模式

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

  • 策略模式(适配器模式)

  • 原型模式

单例模式​

  • 单例模式:确保只有一个实例,并提供一个全局访问点

    类只需要创建一次实例

使用场景​

可以使用单例模式,避免重复创建

  • 1、资源共享
    • 当需要在整个应用程序中共享某个资源
    • 管理全局状态
  • 2、弹出框
    • 通过类的形式,创建一个弹框,然后每次打开这个弹框,都会去判断这个实例是否存在,如果存在就不会创建新的实例
  • 3、消息提示
    • 比如像如果多个接口同时报错情况下,正常情况下,如果多个接口报错,会弹出很多个错误提示,使用了这个单例模式的话,可以去控制,如果已经存在了错误提示的信息,就不需要再显示了
  • 4、框架源码中,vuex也是使用到了单例模式

工厂模式​

  • 工厂模式主要用于创建对象,可以把创建对象的过程封装起来,避免重复代码,提高维护性

  • 工厂起到的作用就是隐藏了创建实例的复杂度,只需要提供一个接口,使用的时候只需要传递一些参数,但是内部具体逻辑实现不需要关系的

发布-订阅模式​

  • 发布-订阅模式也叫做观察者模式
  • 当对象发生改变时,订阅方都会收到通知

使用场景​

  • vue的响应式原理中,也是用到了发布订阅模式

    • 在 get 访问的时候会进行依赖收集,当改变了对象的属性时,就会触发依赖更新
  • 组件通信

    • 发布订阅模式可以在不同组件之间通过事件来通信

策略模式​

  • 策略模式也叫做适配器模式
  • 在实际中写代码中,策略模式用的比较多,用策略模式可以优化if else代码,可以使代码可读性、灵活性、维护性更好