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

JavaScript设计模式之单件模式介绍

来源:懂视网 责编:小采 时间:2020-11-27 21:30:59
文档

JavaScript设计模式之单件模式介绍

JavaScript设计模式之单件模式介绍:这篇文章主要介绍了JavaScript设计模式之单件模式介绍,单件模式,就是静态化的访问中已经实例化的对象,这个对象只能通过一个唯一的入口访问,已经实例或待实例化的对象,需要的朋友可以参考下。单件模式说明1、说明:单件模式,就是静态化的访问中已经实例化的对
推荐度:
导读JavaScript设计模式之单件模式介绍:这篇文章主要介绍了JavaScript设计模式之单件模式介绍,单件模式,就是静态化的访问中已经实例化的对象,这个对象只能通过一个唯一的入口访问,已经实例或待实例化的对象,需要的朋友可以参考下。单件模式说明1、说明:单件模式,就是静态化的访问中已经实例化的对

这篇文章主要介绍了JavaScript设计模式之单件模式介绍,单件模式,就是静态化的访问中已经实例化的对象,这个对象只能通过一个唯一的入口访问,已经实例或待实例化的对象,需要的朋友可以参考下。

单件模式说明

1、说明:单件模式,就是静态化的访问中已经实例化的对象,这个对象只能通过一个唯一的入口访问,已经实例或待实例化的对象;面向对象语言如Java, .Net C#这样的服务端动态语言里,能保证类的操作有顺的进行,避免并行操作使数据发生混乱的情况;

2、单件模式的好处:

1)、 减少 new 的操作,以免加快内存频繁操作,占用内存;
2)、尽量减少大系统的对象的开销;
3)、就是上面说的,可以保障某些类型的操作有顺序准确的操作,以免并行处理引起的数据异常现象;

当然上面说的好处,都是说服务端语言里的。在javascript这种弱类型的语言,不要纠结那么多,因为脚本都在自己的客户端这边操作的,没有什么操作冲突的问题;相当于整个服务器就你一个人在用,不用担心,你的数据会被其他什么人操作的问题;

实例源码

var Singleton = {
 instance: null,
 MailSender: function() {
 var self = this;
 self.to = '';
 self.title = '';
 self.content = '';
 self.send = function() {
 //send body
 }
 },
 getInstance : function() {
 if (this.instance == null) {
 this.instance = new Singleton.MailSender();
 }
 return this.instance;
 }
}

使用方法:

var mail = Singleton.getInstance();
mail.to = 'toname#mail.com';
mail.title = '单件模式发送';
mail.content = '发送内容';

mail.send();

当像有些全局框架,比如像 DWZ 这样的富UI框架,创建一个 全局 的Singleton 后,Singleton.instance 都有值了,就不必要再创建;

当然如果是写成这样的,会比较明了,跟服务端语言一置:

Singleton.getInstance().to = 'toname#mail.com';
Singleton.getInstance().title = '单件模式发送';
Singleton.getInstance().content = '发送内容';

Singleton.getInstance().send();

其他实说明

单件模式在什么的地方,比较有用呢?比如有一个操作服务器上一个统一的配置文件时,比如像大规模并发操作还需要注意先来后到的情况时,比如交易所的操作过程记录等,都可以用 单件模式 来操作;

另外:单件模式的方式:

1. 上头那种叫懒惰方式

2. 饿棍方式:

var Singleton = {
 instance : new Singleton.MailSender(),
 MailSender : function() {
 var self = this;
 self.to = '';
 self.title = '';
 self.content = '';
 self.send = function() {
 //send body
 }
 },
 getInstance : function() {
 return this.instance;
 }
}

使用方法一样;

使用闭包方式创建单件模式,隐藏 instance 对象

1. 代码:

var Singleton = (function() {
 var instance = null;
 function MailSender() {
 this.to = '';
 this.title = '';
 this.content = '';
 }
 MailSender.prototype.send = function() {
 //send body
 }
 return {
 getInstance : function() {
 if (instance == null) {
 instance = new MailSender();
 }
 return instance;
 }
 }
})();

2. 使用方法:

//一样用法
var mail = Singleton.getInstance();
mail.to = 'toname#mail.com';
mail.title = '闭包式 单件模式发送';
mail.content = '发送内容';

mail.send();

文档

JavaScript设计模式之单件模式介绍

JavaScript设计模式之单件模式介绍:这篇文章主要介绍了JavaScript设计模式之单件模式介绍,单件模式,就是静态化的访问中已经实例化的对象,这个对象只能通过一个唯一的入口访问,已经实例或待实例化的对象,需要的朋友可以参考下。单件模式说明1、说明:单件模式,就是静态化的访问中已经实例化的对
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top