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

自己做的网站怎么植入erp成都建筑网站建设

自己做的网站怎么植入erp,成都建筑网站建设,seo自带 网站建设,支持wap网站的系统概念 大量的 if 判断操作#xff0c;逻辑比较复杂#xff0c;并且处理起来相对麻烦。可以采用策略模式来优化分支代码。 策略模式 #x1f4a4;#xff1a;是一种行为设计模式#xff0c;它允许你在运行时根据不同情况选择不同的算法或行为。 设计模式 #x1f90c;逻辑比较复杂并且处理起来相对麻烦。可以采用策略模式来优化分支代码。 策略模式 是一种行为设计模式它允许你在运行时根据不同情况选择不同的算法或行为。 设计模式 就是提前第一次了解全过程第二次直接规划不必要的坑。 我们在写代码亦是如此一定也遇到过许多类似的场景。随着程序员经验的增加我们对于这些常见场景的处理越来越得心应手甚至总结出了针对性的“套路”下次遇到此类问题直接运用“套路”解决省心又省力。这些在软件开发过程中逐渐积累下来的“套路”就是设计模式。 设计模式的目标之一就是提高代码的可复用性、可扩展性和可维护性。正因如此虽然有时候我们不知道某个设计模式但是看了相关书籍或文章后会有一种“啊原来这就是设计模式”的恍然大明白。 例 const game (name) {if (name 原s) {console.log(启动);} else if (name xx精英) {console.log(我先成盒了你们加油);} else if (name 云顶yy) {console.log(这就是我们之间的羁绊);} else if (name 王者zz) {console.log(我再也不买皮肤了);} else {console.log(我啥也没玩);} }; game(原s); // 启动简单优化一下写法 const game (name) {let obj {原s: 启动,xx精英: 我先成盒了你们加油,云顶yy: 这就是我们之间的羁绊,王者zz: 我再也不买皮肤了,};if (obj[name]) {console.log(obj[name]);} else {console.log(我啥也没玩);} }; game(原s); // 启动这种写法只是参考了策略模式的思路将逻辑封装到一个对象中。这种方式使得这个对象能够独立出来只需专注于维护这个对象本身即可。如果要是每个方法都不同那该如何去写呢?接着往下看 const game (name) {let obj {原s: () {console.log(启动);},xx精英: () {console.log(我先成盒了你们加油);},云顶yy: () {console.log(这就是我们之间的羁绊);},王者zz: () {console.log(我再也不买皮肤了);},};if (obj[name]) {obj[name]();} else {console.log(我啥也没玩);} };game(原s); // 启动这种写法就是将对象中的处理逻辑单独封装成一个函数让他内部自己处理自己所用到的逻辑。 下面这种写法代码更加灵活和可扩展也是我比较推荐的写法。 const strategies {原s: () console.log(启动),xx精英: () console.log(我先成盒了你们加油),云顶yy: () console.log(这就是我们之间的羁绊),王者zz: () console.log(我再也不买皮肤了), };function executeStrategy(name) {if (strategies[name]) {strategies[name]();} else {console.log(我啥也没玩);} }executeStrategy(原s);在这个例子里面我们可以将游戏名作为参数传递给函数而不是在函数内部定义多个条件。这样我们就可以将函数封装成一个可复用的策略以便在将来添加更多的游戏名称。 1. 案例 下面看一下使用场景比如我们需要做一个 from 表单验证需要验证手机号和密码 !DOCTYPE html html langenheadmeta charsetUTF-8 /meta nameviewport contentwidthdevice-width, initial-scale1.0 /title表单/titlescript src./src/index.js/script/headbodyform idlogin-form action methodpostlabel foraccount手机号/labelinput typenumber idaccount nameaccount /label forpassword密码/labelinput typepassword idpassword namepassword /button idlogin登录/button/formscriptlet loginForm document.getElementById(login-form);loginForm.onsubmit function (e) {e.preventDefault();let account document.getElementById(account).value;let pwd document.getElementById(password).value;if (account null || account ) {console.log(手机号不能为空);return false;}if (pwd null || pwd ) {console.log(密码不能为空);return false;}if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(account)) {console.log(手机号格式错误);return false;}if (pwd.length 6) {console.log(密码不能小于六位);return false;}// 模拟ajax请求setTimeout(() {console.log(登录成功);}, 1000);};/script/body /html在这里可以发现问题也是很明显的如果你想说他能跑起来吗他也能跑起来但是里面的 if 语句到处都是每次新增一种校验需要整体去调整这个 loginForm.onsubmit 代码复用性也很差只能手动矫正 2. 优化 先将此方法抽离出来 let obj {isNonEmpty: function (value, errorMsg) {if (value || value null) {return errorMsg;}},isMobile: function (value, errorMsg) {// 手机号码正则if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(value)) {return errorMsg;}},minLength: function (value, errorMsg) {if (value.length length) {return errorMsg;}}, };修改 Context 内容部分 let loginForm document.getElementById(loginForm);loginForm.onsubmit function (e) {e.preventDefault();let phone strategies.isMobile(account, 手机号格式错误);let pwdMinLength strategies.minLength(pwd, 密码不能小于六位);let error accountIsMobile || pwdMinLength;if (error) {console.log(error);return false;} };完整代码如下 divform idloginform action methodpostlabel foraccount手机号/labelinput typenumber idaccount nameaccount /label forpassword密码/labelinput typepassword idpassword namepassword /button idlogin登录/button/form /divlet account ; // 这里的变量需要初始化一下不然无法获取到value let pwd ;let loginForm document.getElementById(loginform); let strategies {isNonEmpty: function (value, errorMsg) {if (value || value null) {return errorMsg;}},isMobile: function (value, errorMsg) {// 手机号码格式if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(value)) {return errorMsg;}},minLength: function (value, length, errorMsg) {console.log(value);if (value.length length) {return errorMsg;}}, };loginForm.addEventListener(submit, (e) {account document.getElementById(account).value;pwd document.getElementById(password).value;e.preventDefault();let phonenull strategies.isNonEmpty(account, 手机号不能为空);let phone strategies.isMobile(account, 手机号格式错误);let pwdMinLength strategies.minLength(pwd, 6, 密码不能小于六位);let error phonenull || phone || pwdMinLength;if (error) {console.log(error);return false;} else {console.log(提交成功);} });
http://www.yutouwan.com/news/156815/

相关文章:

  • 网站手机版制作在百度怎么建立自己的网站吗
  • 郑州建设网站企业如何提高网站索引量
  • 河南大学学科建设处网站网站建设服务的广告
  • 在哪个网站可以学做衣服seo外包公司专家
  • 网站开发者模式义乌高端网站建设
  • 网站开发游戏泉州钟南山最新消息
  • 互联网上市公司一览表株洲关键词优化
  • 五金模具技术支持 东莞网站建设濮阳市建设局网站
  • 专门做化妆品平台的网站汽车网站网页模板
  • 企业网站建设代理商安庆高端网站建设公司
  • 网站表现形式yy直播下载电脑版
  • 网站商城支付接口企业所得税交多少
  • 设计品牌网站公司泰国做网站网站要判几年
  • 企业网站建设验收百度推广退款电话
  • 山楂树建站公司wordpress 如何布局
  • 哪个网站可以做puzzle广州最近流感很厉害吗
  • 直播网站排名徐州市工程建设交易平台
  • 哪些网站布局设计做的比较好的网站建设全包需要多少钱
  • 网站建设的基本条件网络会议系统解决方案
  • 茂名做网站dyieewordpress 仿头条主题
  • 网站规划书市场分析创建公司的基本流程
  • wordpress编辑网站的链接是中文以网站做跳板入侵
  • 做微信商城设计网站域名绑定wordpress
  • 企业营销网站建立脚上起小水泡还很痒是什么原因
  • 新会住房和城乡建设部网站江苏省建设斤网站
  • 汉中站怎么做原创短视频网站
  • php完整网站开发案例网站移动端和手机端分开做
  • 扬州网站建设企业中国建设移动门户网站
  • 十大门户网站有哪些局域网网站建设软件
  • 网站建设与小程序开发熊掌号网页模板小偷