策略模式
策略模式,定义了一系列的算法,把它们一个个封装起来,并且使它们可以互相替换。它可以帮助我们在运行时动态地选择不同的算法或行为。
主要概念
- Context:封装上下文,根据需要调用需要的策略,屏蔽外界对策略的直接调用,只对外提供一个接口,根据需要调用对应的策略。
- Strategy:策略,含有具体的算法,其方法的外观相同,因此可以互相代替。
- StrategyMap:所有策略的集合,供封装上下文调用。
const StrategyMap = {};
function context(type, ...rest) {
return StrategyMap[type] && StrategyMap[type](...rest);
}
StrategyMap.add = (a, b) => console.log(a + b);
context('add',1,2);