设计模式之策略模式(js)

说到策略模式,其实你并不陌生啊,不相信?

配置路由时:

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About },
]

定义element-ui表单校验规则:

rules: {
        name: [
          { required: true, message: '请输入活动名称', trigger: 'blur' },
        ],
        region: [
          { required: true, message: '请选择活动区域', trigger: 'change' }
        ],
        date: [
          { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
        ]
      }

这你再熟悉不过了吧!好,进入内容

策略模式主要用来优化对多种情况或多种条件的处理,不用策略模式的话你可能会写很多if else,并且如果之后要新加条件,你又要去改动代码主体。而策略模式就很好解决了这两个问题,策略模式对多种条件进行封装,代码简洁,后续添加仅需修改配置内容,极大的提高了稳定性和延展性。

再来点🌰,体会体会它的思想。

现在有个需求根据对象分配任务,用if else或者switch大家很容易想到样子,我们看下策略模式呢

const config = {
            you: () => {
                console.log('买菜做饭');
            },
            me: () => {
                console.log('等着吃饭');
            },
            he: () => {
                console.log('等着洗碗');
            },
        }
config[who]()

再者,平时写代码也可以做些小优化,比如

优化前:

if (type === '1' || type === '2' || type === '3' || type === '4' || type === '5') {
    console.log('do sth...')
}

优化后:

['1', '2', '3', '4', '5'].includes(type) && console.log('do sth...')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚小银子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值