国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - JavaScript設計模式之策略模式實例

JavaScript設計模式之策略模式實例

2021-03-28 22:19JavaScript教程網 JavaScript

這篇文章主要介紹了JavaScript設計模式之策略模式實例,本文分析了Jquery源碼并給出了自己的實現,需要的朋友可以參考下

策略模式的意義是定義一系列的算法,把它們一個個封裝起來,并且使它們可相互替換。
一個小例子就能讓我們一目了然。

回憶下jquery里的animate方法.

 

復制代碼 代碼如下:

$( div ).animate( {“left: 200px”}, 1000, ‘linear' );  //勻速運動
$( div ).animate( {“left: 200px”}, 1000, ‘cubic' );  //三次方的緩動

 

這2句代碼都是讓div在1000ms內往右移動200個像素. linear(勻速)和cubic(三次方緩動)就是一種策略模式的封裝.

再來一個例子. 上半年我寫的dev.qplus.com, 很多頁面都會有個即時驗證的表單. 表單的每個成員都會有一些不同的驗證規則.

比如姓名框里面, 需要驗證非空,敏感詞,字符過長這幾種情況。 當然是可以寫3個if else來解決,不過這樣寫代碼的擴展性和維護性可想而知。如果表單里面的元素多一點,需要校驗的情況多一點,加起來寫上百個if else也不是沒有可能。

所以更好的做法是把每種驗證規則都用策略模式單獨的封裝起來。需要哪種驗證的時候只需要提供這個策略的名字。就像這樣:

 

復制代碼 代碼如下:

nameInput.addValidata({
notNull: true,
dirtyWords: true,
maxLength: 30
})


而notNull,maxLength等方法只需要統一的返回true或者false,來表示是否通過了驗證。

復制代碼 代碼如下:
validataList = {
notNull: function( value ){
return value !== ”;
},
maxLength: function( value, maxLen ){
return value.length() > maxLen;
}
}

 

可以看到,各種驗證規則很容易被修改和相互替換。如果某天產品經理建議字符過長的限制改成60個字符。那只需要0.5秒完成這次工作。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 狠狠干美女 | 色综合天天天天做夜夜夜夜做 | 在线观看免费视频黄 | 久久国产综合 | 国产精品免费视频观看 | 欧美成人精品一区二区三区 | 久久综合久色欧美综合狠狠 | 黄色毛片网站在线观看 | 久久精品1区 | 国产欧美久久久久久 | 日韩欧美不卡 | 蜜桃成人在线视频 | av电影在线播放 | 啪一啪操一操 | 亚洲精品一区 | 日韩精品免费 | 欧美在线视屏 | 国产麻豆乱码精品一区二区三区 | 国产日韩精品视频 | 欧美簧片在线 | 日本久久久久久久久久久久 | 亚洲a人| 久久久999精品视频 午夜精品久久久久久久久久久久 | 亚洲视频自拍 | 精品一区二区电影 | 伊人天天| 日本激情免费 | 91精品国产综合久久久久久漫画 | 国产黄色免费网站 | 国产成人精品久久二区二区 | 天天澡天天狠天天天做 | 国产黄色免费网站 | 日韩一区在线观看视频 | 在线播放视频一区二区 | 一区二区不卡 | 成人午夜精品久久久久久久3d | 色中色av | 久久h| 日韩欧美国产一区二区三区 | 精品乱子伦一区二区三区 | 免费毛片网站 |