定义的一组算法(封装的功能或者模块,具有多种键的json对象被一个统一的方法管理)封装起来,使其相互之间可以替换。
适合表单验证
//策略
var strategy={
???jump:function (who) {
???????console.log(who+‘ is jump‘);
???},
???run:function (who) {
???????console.log(who+‘ is run‘);
???}
};
//统一处理方法
var useStrategy=(function () {
???return{
???????on:function (arg1, arg2) {
???????????strategy[arg1] && strategy[arg1](arg2);
???????},
???????add:function (param, fn) {
???????????if(typeof strategy[param]===‘undefined‘){
???????????????strategy[param]=fn;
???????????}else{
???????????????console.warn(‘这个方法已经存在‘);
???????????}
???????}
???}
})();
useStrategy.on(‘jump‘,‘james‘);
useStrategy.add(‘jump‘,function () {
???console.log(‘1‘)
});
useStrategy.add(‘eat‘,function () {
???console.log(‘eating‘)
});
useStrategy.on(‘eat‘)
js 策略模式
原文地址:https://www.cnblogs.com/redn/p/8118674.html