首先得說說的經歷,我是乙個嵌入式軟體開發工程師,屬於偏底層的軟體工作。大多是直接和硬體打交道。比如微控制器啊,arm啊等等。所以在我的心裡,面向過程的是思想是根深蒂固的。在沒有接觸物件導向以前,總覺得面向過程是最好的,對物件導向是嗤之以鼻的。但在工作的過程中,慢慢的發現了c不能解決的問題,就是重用性。如果我們c的水平足夠高,也許我們只要拷貝 和貼上就可以了。但是在大多數情況下,是需要進行更改的。所以在工作的過程中,我也很苦惱直到我真正的認識物件導向的開發。這也是我真正開始學習物件導向的原因之一。但是現在我卻感覺到很迷茫,因為我是學機械出生,後來再轉戰軟體的。沒有較為系統的學習過軟體工程以及基礎的知識。
在網上搜尋過怎麼學習物件導向開發技術,大多數無非是多寫**,多看別人的**。後來我了解到了設計模式的概念,感覺好像這個就是我學習物件導向的稻草。學習了一部分後,還是感覺很茫然,因為不知道怎麼設計類。以下的所有筆記將是我學習《物件導向分析與設計》 電子工業出版社 出版的學習筆記。
真的感覺物件導向是乙個全新的世界。開始明白複雜。的世界其實也是由簡單的世界組成的。比如計算機,當開啟裡面看到的是一堆密密麻麻的電子器件,是不是感覺到很複雜。但是我們稍加分析,你又會覺得沒有那麼複雜了。目前的計算機大多由cpu,儲存器,顯示卡,網絡卡等組成。你看到的那麼多的東西其實只是由這幾種元件組成。是不是感覺每一那麼複雜了呢。突然想到這個分類是不是元件的概念呢。然後cpu 又是友alu,控制器等組成。而alu最終是由閘電路構成的(nand門 和反相門)。可見無論多麼複雜的東西,一開始都是一些非常簡單的,我們能了解的方式構成。那我們編寫的軟體是不是也一樣呢。在計算機這個構成裡,你還可以看見乙個很重要的東西,那就是介面。我們顯示卡壞了,直接換顯示卡,硬碟壞了直接換硬碟,而不用整個更換。沒有部件壞了,我們只要買乙個相同介面的部件換上,他就能正常工作了。把這種概念換到軟體上,不就是針對介面程式設計嗎。哈哈哈,突然自己也明白了介面原來還有這麼多的好處。
在這其中還有一種層次結構,乙個部分它又是其他很多個小的部分組成。比如說cpu,它有alu,控制器,儲存器構成,而alu又由很多的門構成。正是由於存在這樣的層級結構,才讓這個世界變得複雜又多變。發沒發現cpu,記憶體條,顯示卡最終都是由閘電路構成的呢。這應該就是普遍性及共性的部分。當這些最基本的,微小的單元,相互協作就構成了這個非凡的世界。而對於軟體開發豈不是一樣的嗎?乙個複雜的系統,當對其進行功能劃分,在劃分的時候,是不是會發現他沒有想象中那麼複雜了呢?
Lua語言物件導向學習記錄一
1 元表目的 對兩個table進行操作,從而改變table的行為 栗子 為了實現 使 表a和表b中元素互相加起來 lua先檢查任一表 是否有 元表 接著檢查是否有 add 字段 add為 即時字段 對應著乙個函式或者表,我們稱其對應的字段為元方法 鍵 處理 元表 的函式 1 setmetatable...
學習記錄 物件導向的基礎概念
1.物件導向。一種程式設計思想。2.名詞提煉法。比如,人開門 人 門 3.具體用起來的時候,找物件,建立物件,使用物件,維護物件間的關係。4.對類與物件的概念理解。概念 類是現實生活中對事物的描述。物件是這類事物,實際存在的個體。描述是class定義的類,具體物件是在堆記憶體中用new建立的實體。操...
PHP物件導向學習一
1.抽象性 2.封裝性 3.共享性 4.強調物件結構而不是程式結構 物件導向的三大特點 封裝,繼承,多型 缺一不可 class mypc this vod pc1 new mypc 用new來例項化乙個類 pc1 name 訪問成員屬性 pc vod 訪問成員方法 初始化物件 construct c...