Skip to content

Latest commit

 

History

History
46 lines (36 loc) · 1.19 KB

工厂模式和策略模式.md

File metadata and controls

46 lines (36 loc) · 1.19 KB

工厂模式

像工厂一样重复的产生类似的产品,工厂模式只需要我们传入正确的参数,就能生产类似的产品。

function factory(role){
    let obj = {
        admin: {
            title: '管理员',
            role: ["首页","发现页","通讯录","应用数据","权限管理"]
        },
        user: {
            title: '普通员工',
            role: ["首页","发现页","通讯录"]
        }
    }
    return obj[role]
}

factory('admin')
factory('user')

策略模式

let obj = {
    admin: {
        title: '管理员',
        role: ["首页","发现页","通讯录","应用数据","权限管理"]
    },
    user: {
        title: '普通员工',
        role: ["首页","发现页","通讯录"]
    }
}

function factory(role){
    return obj[role]
}

factory('admin')
factory('user')

工厂模式和策略模式的区别:

  • 工厂模式是创建型的设计模式,它接受指令,创建出符合要求的实例,它主要解决的是资源的统一分发
  • 策略模式的解决的是策略的切换与扩展,可以相互替换