本文是深入理解JavaScript系列的第六篇讀文筆記,博客原文如下,
我們先來看下,什么叫S.O.L.I.D原則?
五大原則的含義如下,
然后大叔針對(duì)每一個(gè)原則一連寫了五篇文章。這些文章貌似都是來自同一個(gè)外國(guó)博客的翻譯,但是現(xiàn)在這個(gè)外國(guó)原文已經(jīng)打不開了。
這五篇文章其實(shí)質(zhì)量不是很高,而且在我看來說的內(nèi)容有點(diǎn)不倫不類。
在之前的相當(dāng)一段時(shí)間內(nèi),JavaScript被大肆用來模擬面向?qū)ο缶幊?,Yahoo的YUI框架在這件事上玩到了極致。除了YUI這種非常出名的框架之外,還有許多不知名的框架和類庫在做著使用JavaScript來模擬OOP編程這件事。一時(shí)間輪子滿天飛。
其實(shí)準(zhǔn)確的來說,JavaScript是一門基于對(duì)象,采用原型鏈方式繼承的語言,現(xiàn)在的OOP語言基本上都是采用的基于類繼承的方式,從這一點(diǎn)上來說,JavaScript的繼承機(jī)制對(duì)一部分人的理解造成了干擾。
傳統(tǒng)的OOP語言(比如Java),我覺得基于類的對(duì)象繼承可能并不是萬能的,所以設(shè)計(jì)模式在Java這類編程語言中是一個(gè)非常重要的角色,特別是當(dāng)你開發(fā)比較大型復(fù)雜的應(yīng)用時(shí)。但是這并不代表我們需要將這些概念和模式生硬的照搬到JavaScript中。其實(shí)在某些場(chǎng)景中,JavaScript的原型機(jī)制可以表現(xiàn)的更好。
如果從語言的層面來說,JavaScript是一門多范式的語言,你既可以模仿C語言的風(fēng)格來做面向過程式的編程,你也可以模仿面向?qū)ο蟮木幊?,而且你還可以享受函數(shù)式的編程體驗(yàn),具體怎么去使用要看個(gè)人的能力和具體的場(chǎng)景。往往我們使用JavaScript開發(fā)應(yīng)用的時(shí)候,不自覺的會(huì)用上多種編程風(fēng)格,所以它是很靈活的,關(guān)鍵在于使用的人。
所以,大叔的這五篇文章我并不打算逐一的去分析了,我覺得把傳統(tǒng)OOP語言的東西生搬硬套到JavaScript中并沒有太大的意義,關(guān)鍵是看具體的場(chǎng)景和使用的人吧。
不過JavaScript也是有設(shè)計(jì)模式這種東西的,后面我會(huì)帶來相應(yīng)的文章。
更多建議: