美女91-美女18一级毛片免费看-美女18毛片免费视频-美女18毛片-美乃雀中文字幕在线一区-美美女高清毛片视频免费观看

蒙狼科技logo
設(shè)為首頁| 聯(lián)系我們
咨詢熱線: 13917498722
  您的位置: 首頁 > 網(wǎng)站資訊 > 理解javascript中的設(shè)計(jì)模式

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

發(fā)布日期:2017/6/14

百度權(quán)重查詢 站長交易 友情鏈接交換 網(wǎng)站監(jiān)控 服務(wù)器監(jiān)控 seo監(jiān)控

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

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

簡單來說,設(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ì)于相似的問題,模式可被重用

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

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

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

1、創(chuàng)建型模式專注于構(gòu)建對(duì)象或者類,對(duì)象的創(chuàng)建聽起來很簡單(在某些情況下),但是大型應(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ì)象間的通信

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

類在javascript中的注重點(diǎn):

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

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

javascript是一門面向?qū)ο蟮恼Z言,一個(gè)對(duì)象繼續(xù)自其他對(duì)象,這個(gè)概念以原型繼續(xù)著稱。一個(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的使用,因?yàn)槎鄠(gè)Person對(duì)象將引用統(tǒng)一個(gè)prototype,這樣就許可 getAge()方法可以被所有的Person數(shù)據(jù)類型的實(shí)例共享。而不是每個(gè)實(shí)例都重新定義一次,除此之外,任何繼續(xù)自Person的數(shù)據(jù)類型都可以訪問getAge()方法。

處理私稀有據(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ì)象,含有公有和私有變量及方法,可以這樣來使用它:

retinaMacbook.insertUSB(“myUSB”);

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

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

在javascript中函數(shù)和閉包可以做更多的事,但是我們?cè)谶@個(gè)教程中沒法涉及到方方面面,我們簡短的學(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í)到。簡而言之,這個(gè)模式可以定義如下:

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

例如,你可能無數(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è)例子的效果都是一樣的:返回一個(gè)jQuery對(duì)象的引用指向一個(gè)DOM節(jié)點(diǎn)。

1 2 下一頁



其他相關(guān)文章
  • 高手解迷IIS日志200 0 64
  • 網(wǎng)絡(luò)推廣誤區(qū)
  • 動(dòng)了這些你的網(wǎng)站會(huì)有飛一般的改變
  • Joomla教程查看并修改模板的CSS技巧
  • 試想,360的發(fā)展離百度還有多遠(yuǎn)  還記得,當(dāng)時(shí)360面世的時(shí)候,好喜悅的莫過于站長們了,終于在搜索界看到了曙光,不再單單靠看百度的眼色了,互聯(lián)網(wǎng)終于有了一點(diǎn)新穎的空氣了,這讓壓制的站長們終于有
  • KesionCmsV5.01自定義sql標(biāo)簽判斷




  • 企業(yè)網(wǎng)站后臺(tái)使用
    購物網(wǎng)站后臺(tái)使用
    網(wǎng)站產(chǎn)品圖片的處理



    農(nóng)業(yè)銀行支付
    建設(shè)銀行支付
    郵政儲(chǔ)蓄銀行支付



    企業(yè)網(wǎng)站建設(shè)
    整站建設(shè)
    購物網(wǎng)站



    企業(yè)網(wǎng)站建設(shè)建議
    注冊(cè)適合自己的域名
    什么是虛擬主機(jī)




    售前咨詢QQ: 838821345
    售后服務(wù)QQ: 464698733
    應(yīng)急手機(jī):13917498722


    微信掃一掃
    添加24小時(shí)微信客服


    郵箱:lang@MENGL.CN
    地址:上海寶山區(qū)城銀路555弄2號(hào)樓3樓
    ICP備案:滬ICP備12042844號(hào)-3
     滬公網(wǎng)安備:31011402002917號(hào)
    做網(wǎng)站 | 企業(yè)網(wǎng)站建設(shè) | 上海做網(wǎng)站 | 企業(yè)網(wǎng)站制作 | 做網(wǎng)站的公司 | 關(guān)于蒙狼 | 整站建設(shè) | 購物網(wǎng)站 | 企業(yè)網(wǎng)絡(luò)營銷 | 成功案例 | 加盟代理 | 在線訂單
    服務(wù)區(qū)域: 臨港新區(qū)做網(wǎng)站 徐匯做網(wǎng)站 閔行做網(wǎng)站 長寧做網(wǎng)站 虹口做網(wǎng)站 黃浦做網(wǎng)站 盧灣做網(wǎng)站 靜安做網(wǎng)站 浦東做網(wǎng)站 楊浦做網(wǎng)站 普陀做網(wǎng)站 閘北做網(wǎng)站 寶山做網(wǎng)站 嘉定做網(wǎng)站 松江做網(wǎng)站 昆山做網(wǎng)站
    Copyright 2012-2025 上海蒙狼網(wǎng)絡(luò)科技有限公司 aqdzp.cn All Rights Reserved
    主站蜘蛛池模板: 久久久不卡 | 在线你懂的网址 | 国产精品视频国产永久视频 | 高清一区高清二区视频 | 手机看片国产在线 | a级黄色免费看 | 久久精品天天爽夜夜爽 | 欧美一二三区在线 | 手机看片日韩永久福利盒子 | 欧美成人性色生活片免费在线观看 | 国产96福利视频在线观看 | 亚州免费一级毛片 | 免费看你懂的 | 在线观看中文字幕 | 久久国产免费观看精品3 | 亚洲综合网美国十次 | 青青青国产精品视频 | 国产目拍亚洲精品一区麻豆 | 欧美在线观看你懂的 | 青青国产在线视频 | 国产香港一级毛片在线看 | 日韩久久精品一区二区三区 | 女人l8毛片a级18女人水真多 | 国产精品一区在线免费观看 | 啪啪福利 | 亚洲va欧美| 天天看片国产 | 久久午夜免费视频 | 欧美一二区视频 | 亚洲高清国产一区二区三区 | 成人综合在线观看 | 福利视频网站 | 国内久久 | 亚洲精品毛片久久久久久久 | 国产成人女人视频在线观看 | 亚洲综合色婷婷 | 日本免费观看视频 | 国产午夜久久精品 | 正在播放一区 | 国产网站在线 | 国产女人精品性视频 |