国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Singleton封裝增刪改查

來源:懂視網 責編:小采 時間:2020-11-27 19:58:30
文檔

Singleton封裝增刪改查

Singleton封裝增刪改查:這次給大家帶來Singleton封裝增刪改查,Singleton封裝增刪改查的注意事項有哪些,下面就是實戰案例,一起來看一下。本文實例講述了JS基于設計模式中的單例模式(Singleton)實現封裝對數據增刪改查功能。分享給大家供大家參考,具體如下:單例模式單例模式的
推薦度:
導讀Singleton封裝增刪改查:這次給大家帶來Singleton封裝增刪改查,Singleton封裝增刪改查的注意事項有哪些,下面就是實戰案例,一起來看一下。本文實例講述了JS基于設計模式中的單例模式(Singleton)實現封裝對數據增刪改查功能。分享給大家供大家參考,具體如下:單例模式單例模式的

這次給大家帶來Singleton封裝增刪改查,Singleton封裝增刪改查的注意事項有哪些,下面就是實戰案例,一起來看一下。

本文實例講述了JS基于設計模式中的單例模式(Singleton)實現封裝對數據增刪改查功能。分享給大家供大家參考,具體如下:

單例模式

單例模式的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中一個類只有一個實例

單例模式最初的定義出現于《設計模式》(艾迪生維斯理, 1994):“保證一個類僅有一個實例,并提供一個訪問它的全局訪問點?!?/p>

單例模式定義:“一個類有且僅有一個實例,并且自行實例化向整個系統提供?!?/p>

var Singleton = (function(){
 SingletonClass() {
 }
 var singleton = null;
 return {
 getInstance: function() {
 if (singleton == null) {
 singleton = new singletonClass();
 } else {
 return singleton;
 }
 }
 }
})();
Singleton.getIntance();

前端經常用到一些和接口相關的增刪改查異步操作。我們來舉例,我在操作數據列表時,常常少不了,增加 修改 刪除功能。有的方案是用同步的(刷新頁面),用戶體驗好一些用異步;

代碼如下

增加功能

$(".add").click(function(){
 $.ajax({
 type: "post"
 dataType:"json",
 url: "http://www.gxlcms.com/",
 data: {name:"csdn博客",dir:"web前端"},
 success: function( result ){
 if ( result.status ) { alert("新增成功!") } else { alert("新增失敗") }
 },
 error: function(){
 alert("新增出現異步,請得新增加或聯系技術管理員");
 }
 });
});

刪除功能

$(".del").click(function(){
 $.ajax({
 type: "post"
 dataType:"json",
 url: "http://www.gxlcms.com/",
 data: {id:"1"},
 success: function( result ){
 if ( result.status ) { alert("刪除成功!") } else { alert("刪除失敗") }
 },
 error: function(){
 alert("新增出現異步,請得新增加或聯系技術管理員");
 }
 });
});

上面這二個代碼片段簡單描述了,增加和刪除功能的JS代碼。有的同學發現了,他們有共同點,就是ajax請求中有一部分是相同的,并且刪除功能如果在其它地方也用到呢?,那在其它地方也要寫一代碼這種相同的代碼。感覺很不舒服

我們改進一下

var SingletonCRUD = (function(){
 SingletonClass() {}
 SingletonClass.prototype = {
 constructor: SingletonClass,
 add: function( data ) {
 $.ajax({
 type: "post"
 dataType:"json",
 url: "http://www.gxlcms.com/",
 data: data,
 success: function( result ){
 if ( result.status ) { alert("新增成功!") } else { alert("新增失敗") }
 },
 error: function(){
 alert("新增出現異步,請得新增加或聯系技術管理員");
 }
 });
 },
 remove: function( data ) {
 $.ajax({
 type: "post"
 dataType:"json",
 url: "http://www.gxlcms.com/",
 data: data,
 success: function( result ){
 if ( result.status ) { alert("刪除成功!") } else { alert("刪除失敗") }
 },
 error: function(){
 alert("新增出現異步,請得新增加或聯系技術管理員");
 }
 });
 }
 }
 var singleton = null;
 return {
 getInstance: function() {
 if (singleton == null) {
 singleton = new singletonClass();
 } else {
 return singleton;
 }
 }
 }
})();
var curd = SingletonCRUD.getIntance();
$(".add").click(function(){
 var data = {"name":"name"};
 curd.add( data );
});
$(".del").click(function(){
 var data = {"id": 1};
 curd.remove( data );
});

經常用Singleton實例來做一些Tool工具類;

使用設計模式優點:解耦合、可讀性強、代碼結構清晰;

通過上面的小例子,把點擊事件里的獲取數據(click的事件函數)和操作數據(ajax請求)相分離;

通過對單例模式的優化后的代碼:

var SingletonCRUD = (function(){
 SingletonClass() {}
 SingletonClass.prototype = {
 constructor: SingletonClass,
 ajax: function(url, data success ){
 $.ajax({
 type: "post"
 dataType:"json",
 url: url,
 data: data,
 success: success,
 error: function(){
 alert("新增出現異步,請得新增加或聯系技術管理員");
 }
 });
 },
 add: function( data ) {
 this.ajax("http://www.gxlcms.com/", data, function( result ){
 if ( result.status ) { alert("新增成功!") } else { alert("新增失敗") }
 });
 },
 remove: function( data ) {
 this.ajax("http://www.gxlcms.com/", data, function( result ){
 if ( result.status ) { alert("刪除成功!") } else { alert("刪除失敗") }
 });
 }
 }
 var singleton = null;
 return {
 getInstance: function() {
 if (singleton == null) {
 singleton = new singletonClass();
 } else {
 return singleton;
 }
 }
 }
})();

SingleClass中的ajax方法,也相當于一個門面模式(Facade),隱藏內部細節,對外暴露一個接口;

相信看了本文案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!

推薦閱讀:

js的作用域與預解析使用詳解

動態顯示select下拉列表數據

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Singleton封裝增刪改查

Singleton封裝增刪改查:這次給大家帶來Singleton封裝增刪改查,Singleton封裝增刪改查的注意事項有哪些,下面就是實戰案例,一起來看一下。本文實例講述了JS基于設計模式中的單例模式(Singleton)實現封裝對數據增刪改查功能。分享給大家供大家參考,具體如下:單例模式單例模式的
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 亚洲伊人久久大香线蕉综合图片 | 国产成人精品久久一区二区小说 | 国内高清久久久久久久久 | 精品一区二区三区五区六区七区 | 国产视频欧美 | 欧洲日韩 | 欧美在线综合 | 国产精品视频一区二区三区w | 国产成人精品日本亚洲语音2 | 国产在线精品观看一区 | 久久精品a亚洲国产v高清不卡 | 三级中文字幕电影大全 | 欧美在线视频一区在线观看 | 全黄毛片 | 日韩欧美国产高清 | 一本久道久久综合 | 亚洲第一页在线播放 | 国内精品视频在线播放 | 日韩在线专区 | 欧美高清第一页 | 日本久久精品免视看国产成人 | 久久精品一区二区国产 | 欧美亚洲国产精品第一页 | 黄色毛片免费看 | 国产激情视频在线 | 国产精品久久久久一区二区 | 欧美日韩视频一区二区三区 | 亚洲图欧美 | 欧美在线免费观看视频 | 欧美日韩国产一区二区 | 欧美理论电影在线观看 | 免费观看国产一区二区三区 | 精品久久久久久久久中文字幕 | 亚洲 欧美 日韩 在线 | 97r久久精品国产99国产精 | 国产黄色片在线观看 | 亚洲午夜久久久久久久久电影网 | 一区二区三区视频在线 | 欧美国产高清欧美 | 欧美日韩中文字幕 | 天天欧美 |