成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

設(shè)計模式(通往高手之路的必備技能)

paraller / 2080人閱讀

摘要:設(shè)計模式的定義在面向?qū)ο筌浖O(shè)計過程中針對特定問題的簡潔而優(yōu)雅的解決方案。從前由于使用的局限性,和做的應(yīng)用相對簡單,不被重視,就更談不上設(shè)計模式的問題。

‘從大處著眼,從小處著手’,以前對這句話一知半解,自從踏出校門走入社會,開始工作以來,有了越來越深的理解,偶有發(fā)現(xiàn)這句話用在程序開發(fā)中也有用,所以,近段時間開始嘗試著分析jQuery源碼,分析angularjs源碼,學(xué)習(xí)設(shè)計模式。

設(shè)計模式的由來

看過GOF的總結(jié)的23種設(shè)計模式的人,都或多或少的有種似曾相識的感覺,事實確實如此,這些設(shè)計模式原來就有,是前人優(yōu)秀的工作成果,只不過是GOF他們給這些原本就有的東西重新定義了一下,給予這些東西名稱和原理,使之更容易被人理解和接受,這本身就體現(xiàn)了GOF的偉大,讓好的東西更容易傳播。

設(shè)計模式的定義

在面向?qū)ο筌浖O(shè)計過程中針對特定問題的簡潔而優(yōu)雅的解決方案。

如何學(xué)習(xí)設(shè)計模式

設(shè)計模式也并不是什么洪水猛獸,高不可攀,一個有一定經(jīng)驗的軟件開發(fā)者都會在不知不覺中使用它,這可能中間經(jīng)歷了很多的嘗試,當(dāng)他看過設(shè)計模式后,會發(fā)現(xiàn)原來已經(jīng)有人對它進(jìn)行過總結(jié)。

使用設(shè)計模式實現(xiàn)的代碼,使用一般的方法都能實現(xiàn),所以使用設(shè)計模式,會無形中增加代碼的量,尤其是不正確的使用,更會帶來毀滅性的災(zāi)難,所以,一般的開發(fā)人員唯恐避之不及。

理解‘可復(fù)用的面向?qū)ο筌浖A(chǔ)’

設(shè)計模式的實現(xiàn)都遵循一條原則‘找出程序中變化的地方,并將它封裝起來’。在程序設(shè)計中總分為可變的地方和不可變的地方,可變的地方我們往往將他封裝起來,不可變的地方也即是代碼穩(wěn)定和不可變的部分的,往往這部分代碼是可復(fù)用的。這也是標(biāo)題《可復(fù)用的面向?qū)ο筌浖A(chǔ)》的由來。

好了,廢話不多說,下面進(jìn)入常見的設(shè)計模式學(xué)習(xí)。

如何分辨設(shè)計模式

有時侯我們經(jīng)常會遇到這樣的問題,許多設(shè)計模式的實現(xiàn)看起來幾乎一模一樣,比如:代理模式和裝飾者模式,策略模式和狀態(tài)模式。

你不僅會大聲問,他們有什么區(qū)別呢?

其實,從代碼結(jié)構(gòu)上看并沒什么區(qū)別,就像一把手槍,你拿它來殺人,它就是兇器,你拿它來救人它就是武器。跟你的用途有關(guān)系,其實最根本的是你的意圖。所以,在學(xué)習(xí)設(shè)計模式的時候,不要在在意代碼的結(jié)構(gòu)形式,要多留意模式的使用場景,在這種場景下解決了什么問題,多進(jìn)行對比(使用前,使用后有何差別)。

重新審視JavaScript設(shè)計模式

JavaScript從開始被人當(dāng)成為一種玩具語言,到后來發(fā)展為一門流行的可靠的語言。人們從開發(fā)做一些簡單的交互,到后來Google做的第一個郵件系統(tǒng),再到后來Google推出的angular框架的出現(xiàn),js的威力在被人們認(rèn)識的同時,伴隨著瀏覽器支持js做更多的東西,與此同時它也變得癰腫起來,框架間各種復(fù)雜的依賴甚至能讓你崩潰。隨著ES6, TypeScript, CoffeScript 等各種轉(zhuǎn)編譯語言的興起,無疑給前端開發(fā)者帶來了不小的學(xué)習(xí)壓力。像React,vue,angular這些當(dāng)下流行的框架,大家都知道一些,但是要說有深入研究,不見得有多少人。17年年底我發(fā)現(xiàn)各個公司的在招人時,對開發(fā)人員的要求越來越高,要知道這些框架的原理,要知道某些具體的功能如何實現(xiàn),同時對于設(shè)計模式的考察也越來越突出。所以,基于開發(fā)語言的使用環(huán)境,以及工作面試需要,我們不得不認(rèn)真對待JavaScript常見的設(shè)計模式。

從前由于使用的局限性,和做的應(yīng)用相對簡單,js不被重視,js就更談不上設(shè)計模式的問題。雖然,現(xiàn)在JavaScript被開發(fā)人員越來越重視,但是JavaScript設(shè)計模式的討論還不是那么活躍,有研究和見地的還是少數(shù)人,但是研究過源碼的同學(xué)就會知道,在vue,angular種設(shè)計模式已經(jīng)相當(dāng)普遍。

作為一個勵志成為前端小牛的我,現(xiàn)在也甚是心癢。

目錄

‘大處著眼,小處著手’——設(shè)計模式系列

注:這是我個人對設(shè)計模式的認(rèn)識和理解,僅代表個人觀點個看法,不足之處歡迎大家指正,隨著認(rèn)識的加深這篇文章(包括設(shè)計模式其他系列文章)會不斷地進(jìn)行更新。

javascript 設(shè)計模式

面向?qū)ο蟮腏avaScript

構(gòu)造器 設(shè)計模式

外觀 設(shè)計模式

工廠 設(shè)計模式

觀察者 設(shè)計模式

單例 設(shè)計模式

持續(xù)更新中...

參考資料

學(xué)習(xí)JavaScript設(shè)計模式

騰訊全端 AlloyTeam 設(shè)計模式系列文章

JavaScript設(shè)計模式與開發(fā)實踐

其它設(shè)計模式相關(guān)文章請轉(zhuǎn)‘大處著眼,小處著手’——設(shè)計模式系列

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/90620.html

相關(guān)文章

  • 阿里45K高級Java崗,必備技能清單

    摘要:聽說年后離職的老同事,金三剛拿下高薪,年薪直奔萬了?;ヂ?lián)網(wǎng)公司主流技術(shù)選型進(jìn)階高級架構(gòu)師必學(xué)大主要技能,包括數(shù)據(jù)結(jié)構(gòu)和算法高級特性核心數(shù)據(jù)庫框架與必備工具系統(tǒng)架構(gòu)設(shè)計等,希望能真正幫助到想要從程序員進(jìn)階為高級架構(gòu)師之路的朋友。 相信你可能經(jīng)歷過這些: 已經(jīng)工作兩三年了,每個項目都會加班加點全力以赴去完成,薪資增長幅度卻不如人意。聽說年后離職的老同事,金三剛拿下高薪offer,年薪直奔5...

    LuDongWei 評論0 收藏0
  • 眼淚是真、心酸是真手工測試會迷茫是必然、還在手工測試也該醒醒了...

    摘要:寫這篇文章就是想了解手工測試現(xiàn)在的處境為什么手工測試會迷茫呢不知道自動化測試性能測試會不會迷茫。我認(rèn)為手工測試的迷?;趦蓚€原因一是重復(fù)的測試相同的方法測到自己找不著北,有一天猛然抬頭大喊我要改變世界,改變自己,暗示自己換一種工作方法。 ...

    gaomysion 評論0 收藏0
  • Python所有方向學(xué)習(xí)路線,你們要知識體系在這,千萬別做了無用功!

    摘要:適用人群爬蟲方向數(shù)據(jù)分析方向非程序員加薪四開發(fā)前后端開發(fā)是程序員職業(yè)中的熱門,目前來講,人才缺口依然很大。寄語上面就是所有方向的學(xué)習(xí)路線了,把你感興趣的方向掌握了之后,你去找工作不是什么問題的。 ...

    opengps 評論0 收藏0
  • 程序人生:軟件測試工程師,如何從手工測試轉(zhuǎn)成自動化測試?這可能是每個測試要走路...

    摘要:而現(xiàn)實是,很多團(tuán)隊在實施自動化測試的過程中,并未取得良好的質(zhì)量效果,這主要是因為學(xué)習(xí)自動化測試有兩大難點自動化測試本身擁有一定的技術(shù)門檻最大的難點是需要大量的實戰(zhàn)經(jīng)驗。 ...

    Reducto 評論0 收藏0

發(fā)表評論

0條評論

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