设计模式:策略模式
Posted 「已注销」
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式:策略模式相关的知识,希望对你有一定的参考价值。
设计模式:策略模式
特点
- 一个问题匹配多个解决方案
- 可以添加解决方案
- 可以删除解决方案
案例:购物车结算
- 解决方案
const sale =
'100_10': price => price -= 10,
'200_30': price => price -= 30,
'500_60': price => price -= 60
- 添加解决方案
calcPrice.add = function (type, fn)
if (sale[type]) return '此优惠已存在'
sale[type] = fn
- 删除解决方案
calcPrice.del = function (type)
delete sale[type]
完整代码
const calcPrice = (function ()
// 优惠类型
const sale =
'100_10': price => price -= 10,
'200_30': price => price -= 30,
'500_60': price => price -= 60
function calcPrice (price, type)
if (sale[type] === undefined) return '此优惠不存在'
return sale[type](price)
// 添加优惠类型
calcPrice.add = function (type, fn)
if (sale[type]) return '此优惠已存在'
sale[type] = fn
// 删除优惠类型
calcPrice.del = function (type)
delete sale[type]
return calcPrice
)()
以上是关于设计模式:策略模式的主要内容,如果未能解决你的问题,请参考以下文章