最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript實(shí)現(xiàn)單例模式

 更新時(shí)間:2016年01月24日 08:53:12   作者:Darren Ji  
單例模式也稱作為單子模式,更多的也叫做單體模式。為軟件設(shè)計(jì)中較為簡(jiǎn)單但是最為常用的一種設(shè)計(jì)模式。這篇文章主要介紹了Javascript實(shí)現(xiàn)單例模式的相關(guān)資料,需要的朋友可以參考下

單例模式也稱作為單子模式,更多的也叫做單體模式。為軟件設(shè)計(jì)中較為簡(jiǎn)單但是最為常用的一種設(shè)計(jì)模式。

單例模式的介紹:

    在應(yīng)用單例模式時(shí),生成單例的類必須保證只有一個(gè)實(shí)例的存在,很多時(shí)候整個(gè)系統(tǒng)只需要擁有一個(gè)全局對(duì)象,才有利于協(xié)調(diào)系統(tǒng)整體的行為。比如在整個(gè)系統(tǒng)的配置文件中,配置數(shù)據(jù)有一個(gè)單例對(duì)象進(jìn)行統(tǒng)一讀取和修改,其他對(duì)象需要配置數(shù)據(jù)的時(shí)候也統(tǒng)一通過該單例對(duì)象來獲取配置數(shù)據(jù),這樣就可以簡(jiǎn)化復(fù)雜環(huán)境下的配置管理。

    單例模式的思路是:一個(gè)類能返回一個(gè)對(duì)象的引用(并且永遠(yuǎn)是同一個(gè))和一個(gè)獲得該實(shí)例的方法(靜態(tài)方法,通常使用 getInstance 名稱)。那么當(dāng)我們調(diào)用這個(gè)方法時(shí),如果類持有的引用不為空就返回該引用,否者就創(chuàng)建該類的實(shí)例,并且將實(shí)例引用賦值給該類保持的那個(gè)引用再返回。同時(shí)將該類的構(gòu)造函數(shù)定義為私有方法,避免其他函數(shù)使用該構(gòu)造函數(shù)來實(shí)例化對(duì)象,只通過該類的靜態(tài)方法來得到該類的唯一實(shí)例。

一般情況下,Javascript每次new一個(gè)對(duì)象就產(chǎn)生一個(gè)實(shí)例,實(shí)例指向不同的地址。就像如下:

(function(){
function Person(name){
this.name = name;
}
Person.prototype.work = function(){
console.log(this.name + " is working");
}
var p1 = new Person("Darren");
p1.work();
var p2 = new Person("Jack");
p2.work();
}());

以上,每次new出一個(gè)Person對(duì)象都是不同的。

如何在Javascript中實(shí)現(xiàn)單例模式呢?

--在生成某各對(duì)象時(shí)先判斷是否存在。存在就不生成對(duì)象,不存在就生成對(duì)象。

(function(){
var PersonSingleton = (function(){
var instance;
function init(){
return {
name: 'Anonymous',
work: function(){
console.log(this.name + ' working');
}
};
}
return {
getInstance: function(){
if(!instantiated){
instantiated = init();
}
return instantiated;
}
}
})();
var p1 = PersonSingleton.getInstance();
p1.work();
var p2 = PersonSingleton.getInstance();
p2.work();
}());

以上,通過PsonSIngleton對(duì)象的getInstance方法得到的實(shí)例每次都是一樣的。

關(guān)于javascript單例模式的相關(guān)知識(shí)就給大介紹到這里,希望對(duì)大家有所幫助。

相關(guān)文章

最新評(píng)論

凭祥市| 郸城县| 肃宁县| 永城市| 陆丰市| 利川市| 延津县| 丹东市| 东安县| 额济纳旗| 阜阳市| 无锡市| 武川县| 会泽县| 江油市| 庆元县| 温泉县| 长宁县| 溆浦县| 巴楚县| 浙江省| 庐江县| 西昌市| 乌兰浩特市| 阜宁县| 德保县| 八宿县| 通辽市| 佛冈县| 遵化市| 抚远县| 松阳县| 弋阳县| 中江县| 丰都县| 太保市| 奎屯市| 怀柔区| 内丘县| 呼图壁县| 遂平县|