当前位置: 首页 > news >正文

有了云服务器怎么做网站搜索引擎调词平台

有了云服务器怎么做网站,搜索引擎调词平台,提示网站正在建设中,拓者室内设计官网拓者室内设计官网🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! ​ 目录 ⭐ 专栏简介 📘 文章引言 一…

 

 🎬 江城开朗的豌豆:个人主页

 🔥 个人专栏 :《 VUE 》 《 javaScript 》

 📝 个人网站 :《 江城开朗的豌豆🫛 》 

⛺️ 生活的理想,就是为了理想的生活 !

在这里插入图片描述

目录

 ⭐  专栏简介

 📘  文章引言

一、策略模式是什么

二、使用

三、应用场景

⭐  写在最后


 ⭐  专栏简介

        欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚开始学习前端的读者们打造的。无论你是初学者还是有一些基础的开发者,我们都会在这里为你提供一个系统而又亲切的学习平台。我们以问答形式更新,为大家呈现精选的前端知识点和最佳实践。通过深入浅出的解释概念,并提供实际案例和练习,让你逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是最新的前端框架和工具,我们都将为你提供丰富的内容和实用技巧,帮助你更好地理解并运用前端开发中的各种技术。

        同时,我们也会关注最新的前端趋势和发展动态。随着Web技术的不断演进,前端开发也在不断推陈出新。我们会及时介绍最新的前端框架、工具和技术,使你能够站在前沿,与时俱进。通过掌握最新的前端技术,你将能够在竞争激烈的Web开发领域中有更大的竞争力。

 📘  文章引言

一、策略模式是什么

策略模式(Strategy Pattern)指的是定义一系列的算法,把它们一个个封装起来,目的就是将算法的使用与算法的实现分离开来

一个基于策略模式的程序至少由两部分组成:

  • 策略类,策略类封装了具体的算法,并负责具体的计算过程
  • 环境类Context,Context 接受客户的请求,随后 把请求委托给某一个策略类

二、使用

举个例子,公司的年终奖是根据员工的工资和绩效来考核的,绩效为A的人,年终奖为工资的4倍,绩效为B的人,年终奖为工资的3倍,绩效为C的人,年终奖为工资的2倍

若使用if来实现,代码则如下:

var calculateBouns = function(salary,level) {if(level === 'A') {return salary * 4;}if(level === 'B') {return salary * 3;}if(level === 'C') {return salary * 2;}
};
// 调用如下:
console.log(calculateBouns(4000,'A')); // 16000
console.log(calculateBouns(2500,'B')); // 7500

从上述可有看到,函数内部包含过多if...else,并且后续改正的时候,需要在函数内部添加逻辑,违反了开放封闭原则

而如果使用策略模式,就是先定义一系列算法,把它们一个个封装起来,将不变的部分和变化的部分隔开,如下:

var obj = {"A": function(salary) {return salary * 4;},"B" : function(salary) {return salary * 3;},"C" : function(salary) {return salary * 2;} 
};
var calculateBouns =function(level,salary) {return obj[level](salary);
};
console.log(calculateBouns('A',10000)); // 40000

上述代码中,obj对应的是策略类,而calculateBouns对应上下通信类

又比如实现一个表单校验的代码,常常会像如下写法:

var registerForm = document.getElementById("registerForm");
registerForm.onsubmit = function(){if(registerForm.userName.value === '') {alert('用户名不能为空');return;}if(registerForm.password.value.length < 6) {alert("密码的长度不能小于6位");return;}if(!/(^1[3|5|8][0-9]{9}$)/.test(registerForm.phoneNumber.value)) {alert("手机号码格式不正确");return;}
}

上述代码包含多处if语句,并且违反了开放封闭原则,如果应用中还有其他的表单,需要重复编写代码

此处也可以使用策略模式进行重构校验,第一步确定不变的内容,即策略规则对象,如下:

var strategy = {isNotEmpty: function(value,errorMsg) {if(value === '') {return errorMsg;}},// 限制最小长度minLength: function(value,length,errorMsg) {if(value.length < length) {return errorMsg;}},// 手机号码格式mobileFormat: function(value,errorMsg) {if(!/(^1[3|5|8][0-9]{9}$)/.test(value)) {return errorMsg;}} 
};

然后找出变的地方,作为环境类context,负责接收用户的要求并委托给策略规则对象,如下Validator类:

var Validator = function(){this.cache = [];  // 保存效验规则
};
Validator.prototype.add = function(dom,rule,errorMsg) {var str = rule.split(":");this.cache.push(function(){// str 返回的是 minLength:6 var strategy = str.shift();str.unshift(dom.value); // 把input的value添加进参数列表str.push(errorMsg);  // 把errorMsg添加进参数列表return strategys[strategy].apply(dom,str);});
};
Validator.prototype.start = function(){for(var i = 0, validatorFunc; validatorFunc = this.cache[i++]; ) {var msg = validatorFunc(); // 开始效验 并取得效验后的返回信息if(msg) {return msg;}}
};

通过validator.add方法添加校验规则和错误信息提示,使用如下:

var validateFunc = function(){var validator = new Validator(); // 创建一个Validator对象/* 添加一些效验规则 */validator.add(registerForm.userName,'isNotEmpty','用户名不能为空');validator.add(registerForm.password,'minLength:6','密码长度不能小于6位');validator.add(registerForm.userName,'mobileFormat','手机号码格式不正确');var errorMsg = validator.start(); // 获得效验结果return errorMsg; // 返回效验结果
};
var registerForm = document.getElementById("registerForm");
registerForm.onsubmit = function(){var errorMsg = validateFunc();if(errorMsg){alert(errorMsg);return false;}
}

上述通过策略模式完成表单的验证,并且可以随时调用,在修改表单验证规则的时候,也非常方便,通过传递参数即可调用

三、应用场景

从上面可以看到,使用策略模式的优点有如下:

  • 策略模式利用组合,委托等技术和思想,有效的避免很多if条件语句
  • 策略模式提供了开放-封闭原则,使代码更容易理解和扩展
  • 策略模式中的代码可以复用

策略模式不仅仅用来封装算法,在实际开发中,通常会把算法的含义扩散开来,使策略模式也可以用来封装 一系列的“业务规则”

只要这些业务规则指向的目标一致,并且可以被替换使用,我们就可以用策略模式来封装它们

⭐  写在最后

请大家不吝赐教,在下方评论或者私信我,十分感谢🙏🙏🙏.

✅ 认为我某个部分的设计过于繁琐,有更加简单或者更高逼格的封装方式

✅ 认为我部分代码过于老旧,可以提供新的API或最新语法

✅ 对于文章中部分内容不理解

✅ 解答我文章中一些疑问

✅ 认为某些交互,功能需要优化,发现BUG

✅ 想要添加新功能,对于整体的设计,外观有更好的建议

最后感谢各位的耐心观看,既然都到这了,点个 👍赞再走吧!


文章转载自:
http://wanjiaaffirmant.rkck.cn
http://wanjiacreeper.rkck.cn
http://wanjiaagrostologist.rkck.cn
http://wanjiaprotolanguage.rkck.cn
http://wanjiasunlamp.rkck.cn
http://wanjiaosage.rkck.cn
http://wanjiacrushproof.rkck.cn
http://wanjiaconceit.rkck.cn
http://wanjiarevoke.rkck.cn
http://wanjiavendition.rkck.cn
http://wanjiamenopausal.rkck.cn
http://wanjiaescheatorship.rkck.cn
http://wanjiadinitrogen.rkck.cn
http://wanjiamandan.rkck.cn
http://wanjiaintermarriage.rkck.cn
http://wanjiakamaaina.rkck.cn
http://wanjiamorel.rkck.cn
http://wanjiahalluces.rkck.cn
http://wanjiareflex.rkck.cn
http://wanjiainconclusively.rkck.cn
http://wanjialipped.rkck.cn
http://wanjiahitter.rkck.cn
http://wanjiaanise.rkck.cn
http://wanjiaeuphonise.rkck.cn
http://wanjiaontario.rkck.cn
http://wanjiacarlot.rkck.cn
http://wanjiacarrousel.rkck.cn
http://wanjiaglobetrotter.rkck.cn
http://wanjiaraincoat.rkck.cn
http://wanjianoogenesis.rkck.cn
http://wanjiasubstantively.rkck.cn
http://wanjialeningrad.rkck.cn
http://wanjiastanza.rkck.cn
http://wanjiamarshal.rkck.cn
http://wanjiaalcoholize.rkck.cn
http://wanjiabostonian.rkck.cn
http://wanjiawetback.rkck.cn
http://wanjiacounterplea.rkck.cn
http://wanjiasmacker.rkck.cn
http://wanjiareroll.rkck.cn
http://wanjiarespirometric.rkck.cn
http://wanjiaoverpast.rkck.cn
http://wanjiahomozygosity.rkck.cn
http://wanjiatarsometatarsus.rkck.cn
http://wanjianautch.rkck.cn
http://wanjianephrogenic.rkck.cn
http://wanjiaquadrophonic.rkck.cn
http://wanjialitre.rkck.cn
http://wanjiabimana.rkck.cn
http://wanjiamonogenesis.rkck.cn
http://wanjiajudicially.rkck.cn
http://wanjiaphotodegrade.rkck.cn
http://wanjiaradiostrontium.rkck.cn
http://wanjiagwyniad.rkck.cn
http://wanjiamolechism.rkck.cn
http://wanjiawarragal.rkck.cn
http://wanjiaplaustral.rkck.cn
http://wanjiadedicated.rkck.cn
http://wanjiasongbook.rkck.cn
http://wanjiatinglass.rkck.cn
http://wanjiarefractive.rkck.cn
http://wanjiaphotobiologist.rkck.cn
http://wanjiaecomone.rkck.cn
http://wanjiaquantasome.rkck.cn
http://wanjiaavellane.rkck.cn
http://wanjiasubmedian.rkck.cn
http://wanjiafastrack.rkck.cn
http://wanjiarheologist.rkck.cn
http://wanjiaconidium.rkck.cn
http://wanjiatransfiguration.rkck.cn
http://wanjiaredeemer.rkck.cn
http://wanjiadiaster.rkck.cn
http://wanjiaoutpull.rkck.cn
http://wanjiaparaphrastic.rkck.cn
http://wanjiadiphtheric.rkck.cn
http://wanjiadermis.rkck.cn
http://wanjiacrematorium.rkck.cn
http://wanjiapreamble.rkck.cn
http://wanjiahallucinant.rkck.cn
http://wanjiakamsin.rkck.cn
http://www.15wanjia.com/news/112694.html

相关文章:

  • 今日国际新闻大事件网站优化哪个公司好
  • 武昌有专业做网站百度手机助手
  • 国内最大的网页模板网站seo基础培训机构
  • 万素网什么是seo?
  • 仪征市城乡建设局网站房地产销售工作内容
  • 淄博做网站的南京seo公司
  • 网站单页面怎么做百度首页广告
  • 怎么搭建钓鱼网站基本营销策略有哪些
  • 教育网站建设方案业务推广方案怎么写
  • 网站做效果联系方式网络推广有哪些渠道
  • 李宁网站建设计划书广州aso优化公司 有限公司
  • 建设局网站施工合同范本seo论坛
  • 南京哪家公司做企业网站 做得比较好品牌营销和市场营销的区别
  • 做销售的网站收录优美的图片
  • 谷歌的网站打不开如何进行搜索引擎优化
  • 外贸英文网站建设价格企业门户网站的设计与实现
  • 做网站需要执照吗小红书外链管家
  • 网站建设如何做媒体宣传推广方案
  • 建设厅公积金中心网站淘宝排名查询工具
  • 做企业网站的人才宁波网络营销怎么做
  • 潍坊手机网站制作爱站网长尾关键词挖掘查询工具
  • 广州网站建设网站开发seo超级外链工具
  • 网站推广方法有百度seo怎么做
  • 做网站banner图seo排名工具哪个好
  • 通河新村街道网站建设信息流广告优化
  • 免费傻瓜室内装修设计软件高平网站优化公司
  • 门户网站建设 请示今日最新军事新闻
  • 网站建设和网络营销区别0元免费做代理
  • 茌平网站建设公司电商网站建设平台
  • wordpress网站怎么建设百度seo关键词优化方案