W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
寫出可維護(hù)的代碼的一個(gè)最重要的方面就是在代碼中能夠注意到重復(fù)出現(xiàn)的主題并對(duì)其進(jìn)行優(yōu)化。設(shè)計(jì)模式的知識(shí)領(lǐng)域是無價(jià)的。
在本書的第一部分,我們將探索那些真正可以應(yīng)用于任何編程語言的設(shè)計(jì)模式的歷史和重要性。如果你已經(jīng)熟悉這段歷史,可以直接跳過"什么是模式?"這一章繼續(xù)閱讀。
設(shè)計(jì)模式可以追溯到早期的一名叫Christopher Alexander的建筑師。他經(jīng)常會(huì)發(fā)表一些他在處理設(shè)計(jì)問題時(shí)的經(jīng)驗(yàn)和如何與建筑和城鎮(zhèn)相聯(lián)系的。有一天,當(dāng)Alexander使用了一次又一次后,他發(fā)現(xiàn)某些設(shè)計(jì)結(jié)構(gòu)會(huì)導(dǎo)致做出的效果是最好的。
在Sara Ishikawa和Murray Silverstein的協(xié)作下,Alexander發(fā)明了一種可以幫助授權(quán)任何人去設(shè)計(jì)和構(gòu)建希望的任何規(guī)模的模式語言。這在1977年的一篇名為"A Pattern Language"的論文中發(fā)表,在后來作為一本完整的精裝書發(fā)表。
大約30年前,軟件工程師開始將Alexander曾寫過的原理并入第一版的設(shè)計(jì)模式,這是一個(gè)用來對(duì)那些想要改善他們編碼技巧的新手開發(fā)者的一個(gè)指南。要注意,這時(shí)設(shè)計(jì)模式背后的概念實(shí)際上已經(jīng)在編程行業(yè)成立以來就有了,雖然不是那么正式的形式。
第一個(gè)也是最標(biāo)志性的關(guān)于軟件工程的設(shè)計(jì)模式的正式作品是在1995年一本叫Design Patterns: Elements Of Reusable Object-Oriented Software的書中發(fā)表,這是Erich Gamma, Richard Helm, Ralph Johnson和 John Vlissides - 一群被稱為Gang of Four(簡稱GoF)的人寫的。
GoF的出版物被認(rèn)為是非常有助于推動(dòng)設(shè)計(jì)模式的概念在我們的領(lǐng)域發(fā)展的,因?yàn)樗枋隽舜罅康拈_發(fā)技術(shù)和缺陷,而且還有在今天的世界中大量使用的23個(gè)核心的面向?qū)ο蟮脑O(shè)計(jì)模式。我們將詳細(xì)地在"設(shè)計(jì)模式分類"這一章中介紹這些模式。
在本書中,我們將看到一些流行的JavaScript設(shè)計(jì)模式,并探索為什么一些特定的模式比其他的更適合你的項(xiàng)目。但請(qǐng)記住模式不僅僅可以應(yīng)用在單純的JavaScript (例如:標(biāo)準(zhǔn)JavaScript代碼)里,也可以在一些像jQuery或dojo的抽象庫里使用。在我們開始之前,讓我們看看模式在軟件設(shè)計(jì)中的確切定義。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: