设计模式

一、单例模式

定义:保证一个类只有一个实例,并且提供一个访问它的全局访问点。

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

可以被实例化,且实例化一次,再次实例化生成的也是第一个实例。

Vuex的设计思想:vuex全局维护一个对象,使用到了单例设计模式。在这个全局对象中,所有属性都是响应式的,任意属性进行了改变,都会造成使用该属性的组件进行更新。并且只能通过commit的方式改变状态,实现了单向数据流模式。vuex还使用了发布订阅模式。

const store = new Vuex.Stroe({

  state: {

    count:0

  }

})

new Vue({

  el: '#app',

  store

})

this.$store.state访问数据

const state = {}   // 数据

const getter = {}   // 计算属性,类似于组件中的computed

const actions = {}  // 用户派发的行为,相当于methods

const mutations = {}  // 必须通过这一步来修改数据

actions动作提交一个事件,mutations拿到这个事件并执行

二、观察者模式

定义:对象间的一种一对多的依赖关系

需求:当一个对象的状态发生改变时,所有依赖于他的对象都将得到通知

实现:

1、首先指定好谁是被观察者

2、给被观察者指定一个列表,用于存放回调函数以便通知观察者

3、当被观察者状态改变时,发布者会遍历这个缓存列表,依次触发里面存放的观察者回调函数,观察者会做出相应的更改。

三、工厂模式

定义:将其成员对象的实例化推迟到子类来实现

原文地址:https://www.cnblogs.com/1220x/p/11735740.html