策略模式:将定义的一组算法封装起来,使其相互之间可以替换.
举一个简单的例子,在一个页面中根据不通的条件会触发
不同的方法,以往我们可能会写很多的if判断语句或者swith来判断!此时用策略模式就能让代码看起来更简洁,可读性更高
//不同条件下调用该方法
const handleCommand = (k, v) => {
//多个方法的共同部分
const ids = selectedRecords.value.map((item) => item.id)
//创建一个('string:function')形式的obj
const makeEventsMap = {
// 批量删除
batch_delete: () => handleBatchDelete(ids),
// 单条删除
editor: () => handleEditorBackList(v),
create: () => handleCreateBackList()
}
//最后根据对应k,调用对应的方法
//类似与
// if(makeEventsMap.k == k) {
// makeEventsMap[k]()
//}
makeEventsMap[k] && makeEventsMap[k]()
}