欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

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

2023-08-24    分類: 網(wǎng)站建設(shè)

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

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

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

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

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

模式是可擴(kuò)展的,因為他們經(jīng)常被結(jié)構(gòu)化而且你需要遵循某些規(guī)則。

對于相似的問題,模式可被重用

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

設(shè)計模式的種類

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

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

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

3、行為模式專注于對象間的通信

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

類在javascript中的注重點:

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

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

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

處理私稀有據(jù)

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

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

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;

}

};

})();

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

retinaMacbook.insertUSB(“myUSB”);

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

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

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

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

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

建造模式:

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

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

例如,你可能無數(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 />’);

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

新聞標(biāo)題:理解javascript中的設(shè)計模式
分享網(wǎng)址:http://aaarwkj.com/news33/278233.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、App開發(fā)商城網(wǎng)站、關(guān)鍵詞優(yōu)化響應(yīng)式網(wǎng)站、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
国产日韩欧美另类综合| 99久久免费看国产精品| 九九视频在线观看免费观看| 日韩欧美国产午夜精品| 久久久久久精品国产毛片| 亚洲天堂日韩欧美在线| 日本韩国精品视频在线| 婷婷六月开心激情五月| av资源中文字幕在线天堂| 国产午夜草莓视频在线观看| 91亚洲国产成人久久| 巨乳中文乱码国产一区二区| 国产男女免费视频观看| 亚洲av偷拍一区二区三区不卡| 亚洲男人av天堂东京热| 很黄无遮挡在线免费网站| 国产精品大片久久激情四射| 九九热精品视频美谷朱里| 日本人妻中文字幕在线一区| 欧美性做爰片免费视频网| 亚洲天堂av在线有码| 亚洲精品国产第一区| 精品人妻一区三区蜜桃| 久久精品一区二区日韩| 九九热久久这里全是精品| 91精品国产91久久综合桃花| 欧美熟妇精品一级视频| 岛国大片一区二区三区| 欧美另类精品一区二区三区| 日韩欧美精品在线不卡| 日本在线电影一区二区三区| 亚洲大尺码在线视频香蕉| 久久热视频这里有精品| 亚洲av毛片在线网站| 日日干夜夜射天天操| 在线中文字幕日韩精品| 亚洲av乱码毛片在线播放| 欧美精品熟妇乱黑人最大| 亚洲人成伊人成综合网中文| 国产伦人偷精品免费视频| 欧美日韩黄色在线观看|