国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

(譯)《學習JavaScript設計模式》(一)

ls0609 / 3583人閱讀

摘要:模式并不就是一個具體的解決方案。我們要記住模式的角色僅僅就是給我們提供一個解決方案體系。使用本地瀏覽器的方法比如來選擇所有為的元素。后者毫無競爭力。在本書的后面我們將繼續(xù)討論更多的設計模式。

原書鏈接Learning JavaScript Design Patterns
水平有限很多地方不通順,錯翻漏翻歡迎交流。

什么是模式?

模式是一種可普遍應用于軟件設計——對我們前端人員來講就是JavaScript網絡應用程序的可重用方案。或者說是一種可用于解決很多不同情況的模板。

所以理解模式對我們來說究竟有什么好處呢?設計模式主要有三點優(yōu)勢:

模式是成熟的解決方案: 它使用成熟的技術為軟件開發(fā)中問題提供了可靠的方法,這些技術反映了為模式定義的開發(fā)的經驗和見解。

模式易于重用: 模式通常反映了一個很好的可適應我們本身需求的方法。這個特征使得它魯棒性很好。

模式有很好的表現(xiàn)力: 模式通常都有一個解決方案的關鍵詞用法和語法結構,通過它我們可以讓大型的解決方案表現(xiàn)得更優(yōu)雅。

模式并不就是一個具體的解決方案。我們要記住模式的角色僅僅就是給我們提供一個解決方案體系。模式并不能解決所有的設計問題,也不能取代一個好的設計師,但它確實能成為設計師的好幫手。接下來我們來討論一下模式的其他一些優(yōu)勢。

模式可以防患于未然: 當我們的代碼是建立在成熟的模式上時,我們可以花更少的時間考慮我們的代碼結構,而把更多的時間放在我們的總的解決方案的質量上。這是由于模式總是鼓勵我們以結構化和組織化的方式來編寫代碼,很好地避免了一些未來重構代碼的需求。

模式可以提供文檔化的通用解決方案,不會被某個多帶帶問題所限制: 這種通用化的方式意味著我們不需要被應用(通常是編程語言的不同)所限制,設計模式仍然可以改善我們代碼的結構。

特定的模式確實可以避免重復來減少代碼量: 通過鼓勵開發(fā)者在容易減少代碼重復區(qū)域更加警惕(比如用一個通用函數(shù)來取代減少執(zhí)行函數(shù))。這也就是我們所說的讓代碼更加"DRY"

模式添加到開發(fā)者的字典中可以讓他們交流更加方便

頻繁被使用的模式可以隨著開發(fā)者在社區(qū)中交流得到改善: 在某些情況這可以引領一種全新的設計模式,并讓它更好地適應更多的具體情況。這可以保持基于模式的解決方案保持健壯性,甚至超過點對點的解決方案。

我們已經天天在用模式了

為了理解模式究竟多吊,我們來回顧一個jQuery已經幫我們解決的元素選擇的問題。

假設我們有個script,在DOM中為每個找到的class為"foo"的元素添加一個計數(shù)器。效率最高的查詢方法是什么?來看看下面幾種解決方案:

選擇頁面中的所有DOM元素并存儲他們的引用,然后通過正則表達式(或者其他的方法)來過濾只存儲那些class"foo"的元素。

使用本地瀏覽器的方法比如querySelectorAll()來選擇所有class"foo"的元素。

使用原生方法比如getElementsByClassName()來類似地選擇所需集合。

所以這仨哪個快呢?事實上是<3>,它是其他倆的8-10倍。但是天不遂人愿,<3>在IE9以下是沒用的,一次在<2>和<3>都不支持的環(huán)境下只能使用<1>了。

然而使用jQuery的開發(fā)者就不用愁了,因為它為我們這些使用外觀模式的把選擇器抽象出來了。我們后面會提到,這種模式為以后一些潛在的負載代碼提供了一些抽象接口(比如$el.css(), $el.animate())。這意味這我們不需要花太多的時間在實現(xiàn)細節(jié)上了。

jQuery還自動地根據(jù)我們的瀏覽器來挑選選擇器方法。

我們可能都熟悉jQuery的$("selector"),同樣是選擇HTML元素,它比起getElementById(), getElementsByClassName(), getElementByTagName()等方法來說方便多了。

我們知道querySelectorAll()也試圖做同樣的事,比較一下使用jQuery的模式VS我們自己來選擇。后者毫無競爭力(?)。抽象使用模式有現(xiàn)實價值。

在本書的后面我們將繼續(xù)討論更多的設計模式。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/79399.html

相關文章

  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優(yōu)秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優(yōu)秀經典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    fxp 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優(yōu)秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優(yōu)秀經典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    Tecode 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優(yōu)秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優(yōu)秀經典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    VPointer 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優(yōu)秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優(yōu)秀經典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    idealcn 評論0 收藏0
  • 】《學習JavaScript設計模式》(二)

    摘要:學習模式設計的過程中,我們遇到原生模式這玩意兒也不是啥大驚小怪的事。最好的設計模式通常不直接給出問題的答案,這被人認為是解決困難問題的必要步驟。 原書鏈接Learning JavaScript Design Patterns水平有限很多地方不通順,錯翻漏翻歡迎交流。 模式測試,原生模式&約法三章 記住并不是所有的算法啊,最佳實踐啊,解決方案啊什么的都可以被稱為一個完整的模式的。很可能它...

    lifefriend_007 評論0 收藏0

發(fā)表評論

0條評論

ls0609

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<