策略模式
策略模式是一种常用的设计模式,简单来说就是我有很多种方式去做同一件事情,比如我早上去上课,我可以选择走路去、骑车去、飞过去,不去等等。
我们可以很轻松的用if else去实现这个逻辑;比如
goClass(gostyle)
{
if(gostyle == A)
{
consloe.log('走路去');
}
else if(gostyle == B)
{
consloe.log('骑车去');
}
else if(gostyle == C)
{
consloe.log('飞过去')
}
}
但是这样的代码一看就是满足闭合开放原则的,而且当if else多了之后,代码的执行效率会非常之低。
所以就有了我们的策略模式,策略模式其实与if else差别不大,但是它将执行体单独封装了起来,下面我们来看看策略模式怎么重写这段代码
goClassA(){
consloe.log('走路去')
}
goClassB(){
consloe.log('骑车去')
}
goClassC(){
consloe.log('飞过去')
}
goClass=(gostyle)=>{
return this.gostyle;
}
goClass(goClassC());