面向對象,更適合JavaScript

面向對象程序設計是軟件開發中一個很龐大很複雜的話題,它並不是僅僅學會類、繼承、封裝、多態這些面向對象編程語法元素就表示掌握的,這些語法元素只是實現面向對象程序的工具, 就像磚塊、水泥能搭建小屋,也能造高樓大廈,然而在這裏重要的不是磚塊水泥,而是其它因素。所以,利用面向對象技術寫程序,語法元素不是關鍵,關鍵在於組織這些語法元素的方法和技巧。

 

這些方法和技巧,比如說那威名遠播的23個面向對象設計模式,各種面向對象設計原則,如面向接口編程、封裝變化、高內聚、低耦合等等,都有很多相關書籍介紹。

 

衆所周知,使用面向對象技術的目的是爲了寫好代碼,使代碼易讀、易維護、足夠靈活。

 

然而,使用Java、C#之類的血統純正的面向對象程序設計語言卻非常難以實踐面向對象的方法與技巧, 即使代碼中隨處可見類、封裝、繼承、多態,代碼質量還是非常差,有面向對象之形,無面向對象之實。

 

這之中的原因在於,通常使用Java、C#語言寫的代碼邏輯非常簡單,這兩門語言在web領域使用居多,而web領域的程序多數邏輯只是對數據庫的增刪查改,這些邏輯根本沒有面向對象技巧大顯身手的餘地,俗話說,實踐出真知,既然沒有辦法實踐,自然也沒有辦法很好的掌握, 試問一下,有誰做個網站能用到複雜的設計模式的,如果真有,大多數情況下也是強行使用。 因此,如果想通過寫普通的Java網站,學好面向對象技術,很難, 事倍功半。

 

然而, 在網站的另一端,面向對象技術卻能大顯神通,那就前端JavaScript領域。理論上講,JavaScript都不能算面向對象程序設計語言,它沒有真正的類,也沒有繼承,要實現這些特性必須通過另類的模擬。不過這並沒有問題,事實上面向對象的精髓並不是class、extends這些關鍵字,而是使用這些關鍵字的方法,只要功力深厚,一草一木皆爲武器;只要掌握方法,即使沒有這些關鍵字,通過模擬這些關鍵字也能寫出像樣的面向對象程序。

 

爲什麼面向對象設計應用,在純正的面向對象設計語言中,還不如山寨的JavaScript? 這是因爲前端JavaScript程序的邏輯足夠複雜,當然,我說的JavaScript程序不是在網頁上彈出一個對話框、讓網頁中某張圖片在隱藏和顯示之間切換,我說的JavaScript程序是指那些複雜的特效,一個獨立的特效代碼都在千行以上的那種,比如說功能完善的日曆控件,支持拖拽節點以及動態加載數據的導航樹形菜單、富文本編輯器、各種具有可玩性的JS小遊戲等等, 這類特效都有大量的代碼,且邏輯複雜, 寫這些程序時,如果只是簡單粗暴的代碼堆砌, 那極有可能無法最終完成任務,即使完成也毫無維護性可言,這種情況下就強烈需要面向對象這樣的技術來簡化代碼的複雜性,這也是爲什麼面向對象程序設計技巧與方法在前端JavaScript能很好實踐的原因。

 

總而言之,如果你是一個後端程序員,想提高自己編寫高質量代碼, 然而卻苦於沒辦法實踐書上所學的面向對象技術,那麼不妨去寫寫JavaScript, 當你面對的不是數據庫的增刪查改,而是合理的組織巨量DOM元素,使之達到你想要的效果, 那麼,面向對象不可或缺, 你不用不行,而不是你想用卻沒有場景可以使用。使用JavaScript,會讓你更有寫程序的感覺,因爲你不再是數據的搬運工。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章