欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JS基于設(shè)計(jì)模式中單例模式實(shí)現(xiàn)封裝對(duì)數(shù)據(jù)增刪改查功能的示例分析

這篇文章給大家分享的是有關(guān)JS基于設(shè)計(jì)模式中單例模式實(shí)現(xiàn)封裝對(duì)數(shù)據(jù)增刪改查功能的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)是專業(yè)的齊齊哈爾網(wǎng)站建設(shè)公司,齊齊哈爾接單;提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行齊齊哈爾網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

單例模式

單例模式的核心結(jié)構(gòu)中只包含一個(gè)被稱為單例的特殊類。通過單例模式可以保證系統(tǒng)中一個(gè)類只有一個(gè)實(shí)例

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

單例模式定義:“一個(gè)類有且僅有一個(gè)實(shí)例,并且自行實(shí)例化向整個(gè)系統(tǒng)提供。

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

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

代碼如下

增加功能

$(".add").click(function(){
  $.ajax({
  type: "post"
    dataType:"json",
    url: "https://www.jb51.net/",
    data: {name:"csdn博客",dir:"web前端"},
    success: function( result ){
    if ( result.status ) { alert("新增成功!") } else { alert("新增失敗") }
  },
    error: function(){
    alert("新增出現(xiàn)異步,請(qǐng)得新增加或聯(lián)系技術(shù)管理員");
  }
  });
});

刪除功能

$(".del").click(function(){
  $.ajax({
  type: "post"
    dataType:"json",
    url: "https://www.jb51.net/",
    data: {id:"1"},
    success: function( result ){
    if ( result.status ) { alert("刪除成功!") } else { alert("刪除失敗") }
  },
    error: function(){
    alert("新增出現(xiàn)異步,請(qǐng)得新增加或聯(lián)系技術(shù)管理員");
  }
  });
});

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

我們改進(jìn)一下

var SingletonCRUD = (function(){
 SingletonClass() {}
 SingletonClass.prototype = {
   constructor: SingletonClass,
   add: function( data ) {
  $.ajax({
   type: "post"
     dataType:"json",
     url: "https://www.jb51.net/",
     data: data,
     success: function( result ){
    if ( result.status ) { alert("新增成功!") } else { alert("新增失敗") }
   },
     error: function(){
    alert("新增出現(xiàn)異步,請(qǐng)得新增加或聯(lián)系技術(shù)管理員");
   }
    });
   },
  remove: function( data ) {
  $.ajax({
   type: "post"
     dataType:"json",
     url: "https://www.jb51.net/",
     data: data,
     success: function( result ){
    if ( result.status ) { alert("刪除成功!") } else { alert("刪除失敗") }
   },
     error: function(){
    alert("新增出現(xiàn)異步,請(qǐng)得新增加或聯(lián)系技術(shù)管理員");
   }
    });
   }
 }
 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 );
});

經(jīng)常用Singleton實(shí)例來做一些Tool工具類;

使用設(shè)計(jì)模式優(yōu)點(diǎn):解耦合、可讀性強(qiáng)、代碼結(jié)構(gòu)清晰;

通過上面的小例子,把點(diǎn)擊事件里的獲取數(shù)據(jù)(click的事件函數(shù))和操作數(shù)據(jù)(ajax請(qǐng)求)相分離;

通過對(duì)單例模式的優(yōu)化后的代碼:

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("新增出現(xiàn)異步,請(qǐng)得新增加或聯(lián)系技術(shù)管理員");
   }
    });
   },
   add: function( data ) {
  this.ajax("https://www.jb51.net/", data, function( result ){
    if ( result.status ) { alert("新增成功!") } else { alert("新增失敗") }
  });
   },
  remove: function( data ) {
  this.ajax("https://www.jb51.net/", data, function( result ){
    if ( result.status ) { alert("刪除成功!") } else { alert("刪除失敗") }
  });
   }
 }
 var singleton = null;
 return {
  getInstance: function() {
   if (singleton == null) {
  singleton = new singletonClass();
   } else {
  return singleton;
   }
  }
 }
})();

感謝各位的閱讀!關(guān)于“JS基于設(shè)計(jì)模式中單例模式實(shí)現(xiàn)封裝對(duì)數(shù)據(jù)增刪改查功能的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

新聞標(biāo)題:JS基于設(shè)計(jì)模式中單例模式實(shí)現(xiàn)封裝對(duì)數(shù)據(jù)增刪改查功能的示例分析
本文網(wǎng)址:http://aaarwkj.com/article24/gjgeje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站排名、App開發(fā)品牌網(wǎng)站建設(shè)、品牌網(wǎng)站制作、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
丝袜美腿美女日韩在线| 婷婷激情亚洲综合综合久久| 成人欧美一区二区三区av| 亚洲男人的av天堂生活| 爱我久久视频网免费视频| 亚洲一区成人免费电影| 不卡二卡三卡四卡精品| 青青草免费在线视频蜜臀| 日日躁夜夜躁狠狠躁黑人| av二区不卡国产精品| 激情欧美精品桃桃激情| 国产精品日韩av一区二区| 精品人妻av区久久久| 色哟哟哟哟免费观看视频| 国产剧免费看视频网站成人| 久久久久久精品妇女| 国产亚洲一区二区日韩欧美| 国产精品妇女一二三区| 综合激情四射亚洲激情| 亚洲高清中文字幕一区二三区| 不卡视频一区中文字幕| 亚洲精品最新地址久久久| 国产在线观看一区二区三区精品| 国产精品一二三在线看| 麻豆深夜激情在线观看| 日本a级免费大片网站| 俩小伙探花专约老熟女| 国产精品盗摄一区二区三区| 日本午夜在线观看视频| 四虎最新地址在线观看| 亚洲女人天堂av在线| 日韩欧美性生活免费观看| 亚洲精品国产二区中文字幕| 中文字幕人妻丝袜乱一区二区| 中文字幕人妻丝袜二区| 麻豆文化传媒免费网址| 男女视频午夜刺激一区二区| 日本精品专区在线观看| 成人性生交大片免费看久久| 久久视频在线播放视频| 欧美日韩性生活视频在线 |