作用:

根据不同的条件去进行相应的业务逻辑处理

就好比针对每种情况都制定对应的方案,触发条件就启动某项方案策略

示例:

        //策略对象
        const arrangeFun = {
            model1:(value1,value2,value3,value4)=>{
              return `${value1}${value2}${value3}:${value4}`
            },
            model2:(value1,value2,value3,value4)=>{
              return `${value4},${value3}${value1}${value2}`
            },
            model3:(value1,value2,value3,value4)=>{
              return `${value2}!${value4}${value3}${value1}`
            },
        }
        
        class StringJoint{
            constructor(fun){
                this.useModel = (value1,value2,vlaue3,vlaue4)=>{
                    return fun(value1,value2,vlaue3,vlaue4)
                }
            }
        }

        const model1 = new StringJoint(arrangeFun.model1)
        const model2 = new StringJoint(arrangeFun.model2)
        const model3 = new StringJoint(arrangeFun.model3)
       
        console.log(model1.useModel('我的','同学','是','秋雅'))
        console.log(model2.useModel('我的','同学','是','秋雅'))
        console.log(model3.useModel('我的','同学','是','秋雅'))

        //用这四个字进行造句,可以有很多的策略,我们定义了一个集中的策略对象
        //然后生成造句的实例,并将方法保存在实例当中
        //实例调用自己身上的方法,就可以了

js设计模式:策略模式-LMLPHP

02-20 06:05