不平凡軟件,始于2014
鄭州軟件開發教你如何進行面向對對象程序設計的學習
在學習一門語言之前最重要的就是要弄清該語言是干什么的,處于什么樣的環境中,只有對它有所了解才能去更好的去學習,最近參與了一個面向對象程序設計(以下簡稱OOP)的培訓,這兩天才有空整理一下思路,現在拿出來給大家來分享。鄭州軟件開發!本文旨在說明以何種方式學習OOP,文中如有不當之處還請大家指正。
上周看到一個人的帖子,大致的意思是對OOP中的一些概念很困惑,不理解什么是“面向對象的五個特性”或“三個原則”。說實話,最早我對這些概念的認識是背下來的,如果有人問,答得很流暢;后來發現這些概念很空洞,不知道在說些什么,這時候就答不上來了;直到現在,也不該完全保證對這些概念完全了解,只能結合具體的應用說出個一二。
這也是我對OOP的學習認識過程,以下就是這過程中總結的經驗,如下:
1.任何OOP都有其獨特的場景,離開了場景,一切設計都可能毫無意義;同樣,也不能假設場景,因為任何人都不能把握下一步會是什么樣子。
這就好比收割麥子,除了要知道麥子熟了之外,還要了解交通等狀況。不然等你開著收割機去收割的時候發現山路崎嶇,收割機根本進不了田。我之前做過一個優化項目。該項目一要支持很多廠家的設備,二對性能要求很高,三時間有限。經過再三討論后,公司決定將影響性能的算法用C++實現,將影響兼容性的部分用C#實現。結果,算法中絲毫沒有用的OOP,交互部分充滿了OO設計。最終該項目比較成功的完成了。
2.OOP的實現在不同平臺下有不同的呈現方式,脫離平臺,依葫蘆畫瓢最總結果是不論不類。
舉個例子,C#,Java以及C++是現在主流的三種OO語言,從可維護性,可擴展性等多方面出發,如果用這三種模式去實現一個工廠,其最終結果必有差異。Java和C++差異不大,但經過優化后的C#實現方式與前者有很大的不同,因為C#中可以有反射的加入使設計模式出現了很大的改觀(個人認為雖然反射破壞了OOP,但其帶來的好處足以掩蓋其不足,說到底它是雙刃劍,就看怎么用了);
3.OOP是程序設計的一個分支,有長有短,有它特有的職能,與其他程序設計理論有同等的地位,他們相互補充,沒有高低貴賤之分。
在一個公司的軟件系統中,面向過程,OO,SOA甚至AOP等同時存在相當普遍。相信做SOA的人都了解,SOA中每個業務的實現可能是用OOP的方式,但SOA本身卻不是;同樣,過程語言C今天依舊流行;
4.OOP是人經驗的積累,并不是一成不變的。
這句話的意思很簡單,論壇中每個人在發表自己的見解時,不管這個觀點正確還是錯誤,愚蠢還是高明,都是在表達一種軟件開發技術思想。這時候,如果你的思想能夠成功的解決某一領域中的難題,那么你的觀點就進入的教科書,供更多的人研究學習。面向對象的三個原則,五個特性就是這么來的,它們并不是圣經,它們一樣需要不斷加入新鮮血液。到目前位置,最經典的血液就是設計模式了。同樣,研究過設計模式的人都知道設計模式不僅是四人組的23種,還有很多。但是一旦結合的具體的語言平臺,適合的就不多了。所以在學習的時候一要踏實學習,二要不拘泥與字面,三要大膽假設,勇于改進,加入自己的觀點;
不平凡軟件,鄭州軟件開發公司,鄭州軟件開發,鄭州軟件定制,鄭州微信開發,鄭州進銷存定制開發,鄭州OA系統開發,鄭州軟件開發公司
相關新聞換一組