时间:2021-05-26
单件模式说明
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();
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例分析了PHP设计模式之单例模式。分享给大家供大家参考,具体如下:单例模式(SingletonPattern单件模式或单元素模式),是常见的一种设计模式,
本文实例讲述了javascript设计模式–单例模式。分享给大家供大家参考,具体如下:介绍:单例模式是结构最简单的设计模式。单例模式用于创建那些在软件系统中独一
本文实例讲述了javascript设计模式之组合模式原理与应用。分享给大家供大家参考,具体如下:组合模式说明组合模式用于简单化,一致化对单组件和复合组件的使用;
前言其实和其他编程语言一样,Javascript同样拥有着很多种设计模式,比如单例模式、代理模式、观察者模式等,熟练运用Javascript的设计模式可以使我们
前言和其他编程语言一样,Javascript同样拥有着很多种设计模式,比如单例模式、代理模式、观察者模式等,熟练运用Javascript的设计模式可以使我们的代