最新文章专题视频专题问答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
当前位置: 首页 - 科技 - 知识百科 - 正文

JS中的单例模式实现对数据增删改查

来源:懂视网 责编:小采 时间:2020-11-27 19:39:45
文档

JS中的单例模式实现对数据增删改查

JS中的单例模式实现对数据增删改查:这篇文章主要介绍了JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能.结合实例形式分析了javascript基于单例模式结合ajax针对数据库进行增删改查的相关操作技巧,需要的朋友可以参考下本文实例讲述了JS基于设计模式中的单例模式(Sing
推荐度:
导读JS中的单例模式实现对数据增删改查:这篇文章主要介绍了JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能.结合实例形式分析了javascript基于单例模式结合ajax针对数据库进行增删改查的相关操作技巧,需要的朋友可以参考下本文实例讲述了JS基于设计模式中的单例模式(Sing

这篇文章主要介绍了JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能.结合实例形式分析了javascript基于单例模式结合ajax针对数据库进行增删改查的相关操作技巧,需要的朋友可以参考下

本文实例讲述了JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能。分享给大家供大家参考,具体如下:

单例模式

单例模式的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例

单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”

单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”

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;
 }
 }
 }
})();

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在ES6中子组件调用父组件使用方法

在angular中如何制作动态表单

在angularjs中使用$http实现异步上传Excel文件方法

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

JS中的单例模式实现对数据增删改查

JS中的单例模式实现对数据增删改查:这篇文章主要介绍了JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能.结合实例形式分析了javascript基于单例模式结合ajax针对数据库进行增删改查的相关操作技巧,需要的朋友可以参考下本文实例讲述了JS基于设计模式中的单例模式(Sing
推荐度:
标签: 模式 数据 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top