久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日焦點(diǎn) 焦點(diǎn)資訊 營(yíng)銷之道 企業(yè)報(bào)道 淘寶運(yùn)營(yíng) 網(wǎng)站建設(shè) 軟件開發(fā) 400電話
  當(dāng)前位置: 首頁(yè) » 資訊 » 網(wǎng)站建設(shè) » 正文

理解JavaScript中的設(shè)計(jì)模式

放大字體  縮小字體 發(fā)布日期:2018-02-18  來(lái)源:新格網(wǎng)  作者:新格網(wǎng)  瀏覽次數(shù):223  【去百度看看】
核心提示:可靠的設(shè)計(jì)模式是可維護(hù)軟件的基石,如果你曾參與技術(shù)面試,很有可能被問到關(guān)于設(shè)計(jì)模式的這類東西。簡(jiǎn)單來(lái)說(shuō),設(shè)計(jì)模式就是對(duì)特定類型問題重用的軟件解決方案,這些問題在軟件開發(fā)的時(shí)候經(jīng)常會(huì)碰到,通過很多年的實(shí)踐,專家對(duì)一些相似地問題總結(jié)出一些方法,這些方法就封裝成為一種設(shè)計(jì)模式

可靠的設(shè)計(jì)模式是可維護(hù)軟件的基石,如果你曾參與技術(shù)面試,很有可能被問到關(guān)于設(shè)計(jì)模式的這類東西。下面這個(gè)指南中,我們將學(xué)習(xí)一些今天就可以用得著的設(shè)計(jì)模式。

什么是設(shè)計(jì)模式?

簡(jiǎn)單來(lái)說(shuō),設(shè)計(jì)模式就是對(duì)特定類型問題重用的軟件解決方案,這些問題在軟件開發(fā)的時(shí)候經(jīng)常會(huì)碰到,通過很多年的實(shí)踐,專家對(duì)一些相似地問題總結(jié)出一些方法,這些方法就封裝成為一種設(shè)計(jì)模式,所以:

模式是一種經(jīng)驗(yàn)證的用于解決軟件開發(fā)問題的方案。

模式是可擴(kuò)展的,因?yàn)樗麄兘?jīng)常被結(jié)構(gòu)化而且你需要遵循某些規(guī)則。

對(duì)于相似的問題,模式可被重用

在接下來(lái)的教程中,我們將直接給出一些設(shè)計(jì)模式的例子。

設(shè)計(jì)模式的種類

軟件開發(fā)中,設(shè)計(jì)模式通常分為幾種類別,在這篇教程中我們重點(diǎn)介紹以下三種:

1、創(chuàng)建型模式專注于構(gòu)建對(duì)象或者類,對(duì)象的創(chuàng)建聽起來(lái)很簡(jiǎn)單(在某些情況下),但是大型應(yīng)用需要控制對(duì)象的創(chuàng)建過程。

2、結(jié)構(gòu)型設(shè)計(jì)模式專注于管理對(duì)象之間的關(guān)系使得應(yīng)用是用一種可擴(kuò)展的架,,結(jié)構(gòu)型模式關(guān)鍵點(diǎn)是確保在應(yīng)用程序中部分改變不會(huì)影響其他部分。

3、行為模式專注于對(duì)象間的通信

你可能在讀完這些簡(jiǎn)介的描述后仍然覺得有問題,這很正常,一旦我們看完了這些模式的深入介紹后,問題也會(huì)變得明朗起來(lái),所以接著往下看吧。

類在Javascript中的注意點(diǎn):

當(dāng)我們讀設(shè)計(jì)模式時(shí),你經(jīng)常會(huì)提及到類和對(duì)象。這很疑惑,因?yàn)镴avascript沒有真正“類”的構(gòu)造,一個(gè)更合適的術(shù)語(yǔ)叫“數(shù)據(jù)類型”。

Javascript中的數(shù)據(jù)類型:

Javascript是一門面向?qū)ο蟮恼Z(yǔ)言,一個(gè)對(duì)象繼承自其他對(duì)象,這個(gè)概念以原型繼承著稱。一個(gè)數(shù)據(jù)類型可以通過構(gòu)造函數(shù)創(chuàng)建,就像:

function Person(config) {

this.name = config.name;

this.age = config.age;

}

Person.prototype.getAge = function() {

return this.age;

};

var tilo = new Person({name:“Tilo”, age:23 });

console.log(tilo.getAge());

當(dāng)方法定義在Person數(shù)據(jù)類型中時(shí)注意prototype的使用,由于多個(gè)Person對(duì)象將引用同一個(gè)prototype,這樣就允許 getAge()方法可以被所有的Person數(shù)據(jù)類型的實(shí)例共享。而不是每個(gè)實(shí)例都重新定義一次,除此之外,任何繼承自Person的數(shù)據(jù)類型都可以訪問getAge()方法。

處理私有數(shù)據(jù)

在Javascript中另一個(gè)常見的問題是沒有真正意義上的私有變量,然而我們可以使用閉包

去模擬私有變量,考慮下面這代碼片段:

var retinaMacbook = (function() {

//Private variables

var RAM, addRAM;

RAM = 4;

//Private method

addRAM = function (additionalRAM) {

RAM += additionalRAM;

};

return {

//Public variables and methods

USB: undefined,

insertUSB: function (device) {

this.USB = device;

},

removeUSB: function () {

var device = this.USB;

this.USB = undefined;

return device;

}

};

})();

在上面這個(gè)例子中,我們創(chuàng)建了一個(gè)retinaMacbook對(duì)象,含有公有和私有變量及方法,可以這樣來(lái)使用它:

retinaMacbook.insertUSB(“myUSB”);

console.log(retinaMacbook.USB); //logs out “myUSB”

console.log(retinaMacbook.RAM) //logs out undefined

在Javascript中函數(shù)和閉包可以做更多的事,但是我們?cè)谶@個(gè)教程中沒法涉及到方方面面,我們簡(jiǎn)短的學(xué)習(xí)了Javascript的數(shù)據(jù)類型和私有變量。現(xiàn)在我們可以學(xué)習(xí)設(shè)計(jì)模式了。

創(chuàng)建型設(shè)計(jì)模式:

有很多種不同的創(chuàng)建設(shè)計(jì)模式,但是在這里我們主要討論兩種,建造模式(Builder)和原型模式(Prototype)。

建造模式:

建造模式通常用于web開發(fā),有時(shí)你在使用它你卻還沒意識(shí)到。簡(jiǎn)而言之,這個(gè)模式可以定義如下:

“使用建造模式允許我們僅僅通過指定類型和內(nèi)容來(lái)構(gòu)造一個(gè)對(duì)象,我們不需要明確的創(chuàng)建對(duì)象。”

例如,你可能無(wú)數(shù)次的使用jQuery:

var myDiv = $(‘<div id=“myDiv”>This is a div.</div>’);

//myDiv now represents a jQuery object referencing a DOM node.

var someText = $(‘<p/>’);

//someText is a jQuery object referencing an HTMLParagraphElement

var input = $(‘<input />’);

看看上面這三個(gè)例子,第一個(gè),傳遞了一個(gè)<div/>元素附帶一些內(nèi)容,第二個(gè),傳遞一個(gè)空的<p>標(biāo)簽,第三個(gè),傳遞一個(gè)<input/>元素。這三個(gè)例子的結(jié)果都是一樣的:返回一個(gè)jQuery對(duì)象的引用指向一個(gè)DOM節(jié)點(diǎn)。

 
長(zhǎng)春  短信群發(fā)  吉林省  紅視窗  中國(guó)  長(zhǎng)春市  玉米  長(zhǎng)春網(wǎng)站建設(shè)  網(wǎng)站  振華  設(shè)備  設(shè)計(jì)  吉林  廣州  撲克  敘利亞  長(zhǎng)春上門維修電腦  聯(lián)合聲明  內(nèi)蒙古  消費(fèi)者權(quán)益  新聞中心  突擊步槍  化學(xué)武器  中非合作論壇  中國(guó)政府  滿洲里  美國(guó)白宮  記者會(huì)  中消協(xié)  塞內(nèi)加爾  強(qiáng)臺(tái)風(fēng)  中國(guó)電影  消費(fèi)者  海外網(wǎng)  長(zhǎng)春北大青鳥  中國(guó)智能建筑節(jié)  敘政府  重慶市  網(wǎng)站建設(shè)  北京市  國(guó)家元首  長(zhǎng)春上門修電腦  產(chǎn)業(yè)園  北斗導(dǎo)航  中國(guó)芯  龍頭企業(yè)  黨委書記  長(zhǎng)春上門做系統(tǒng)  長(zhǎng)春電腦上門維修  塞申斯  侯建國(guó),質(zhì)量,中國(guó)特色社會(huì)主義  售前咨詢技巧  俄羅斯  發(fā)言人  特朗普,貿(mào)易戰(zhàn),美國(guó)  運(yùn)載火箭  今日頭條  中國(guó)軍網(wǎng)  美國(guó)人  特朗普  長(zhǎng)春國(guó)貿(mào)  位置服務(wù)  英國(guó)皇家海軍  一帶一路  中國(guó)移動(dòng)  人民政府  檢察官  發(fā)布會(huì)  中國(guó)市場(chǎng)  美國(guó)海軍陸戰(zhàn)隊(duì)  小學(xué)生  撫養(yǎng)費(fèi)  指示  圓桌  觀察者網(wǎng)  彈道導(dǎo)彈  小雨  白宮  郭曉東  美國(guó)  亞馬遜  臺(tái)風(fēng)  參議院  尼克松  日本  國(guó)家安全  化武  步槍  毒品  動(dòng)物世界  廣東省  大阪  劉強(qiáng)東  美國(guó)陸軍  非洲  中國(guó)空軍  劉雨欣  美國(guó)總統(tǒng)  結(jié)婚紀(jì)念日  越野車 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規(guī)舉報(bào) ]  [ 關(guān)閉窗口 ]

 
0條 [查看全部]  相關(guān)評(píng)論

 
網(wǎng)站首頁(yè) | 關(guān)于我們 | 聯(lián)系方式 | 使用協(xié)議 | 版權(quán)隱私 | 網(wǎng)站地圖 | 排名推廣 | 廣告服務(wù) | 積分換禮 | 網(wǎng)站留言 | RSS訂閱 | 皖I(lǐng)CP備2021004516號(hào)-14
企業(yè)800網(wǎng) · 提供技術(shù)支持