面向對象你必須知道的幾件事!

什麼是設計模式?

簡而言之就是有一些工作已經形成了模式,不必重複勞動,也就是說車的輪子不用你去製造。

在談設計模式之前我先給大家推薦一本書,是學習設計模式的聖經,感興趣的小夥伴可以找來研讀

面向對象你必須知道的幾件事!

這本書我也是看了好多遍,每一遍都有新的體會,其實最核心的東西就是封面上的兩個字:複用。相信真正懂面向對象的小夥伴會理解我說的話,這種思想正是我們軟件行業成熟化的標誌,其實任何一個成熟行業我想亦是如此。

接著我想談一談程序猿到底需要什麼樣的思維?

面向對象你必須知道的幾件事!

從程序猿的角度來講,程序猿的工作無非是將現實社會的需求轉換為計算機識別的語言,這樣的話程序猿無非是面對兩個層面:現實的抽象和底層的技術。現實抽象的思維幫助我們如何更有效率的將現實的需求進行模塊劃分、功能整合;而底層思維是我們程序猿的基本功,很多行業大牛也都是從這裡起步的。其實程序猿只要打磨好這兩項能力,大牛也就在向你揮手了,具體一些思想如下:

底層思維:向下,如何把握機器底層從微觀理解對象構造

  • 語言構造
  • 編譯轉換
  • 內存模型
  • 運行時機制

抽象思維:向上,如何將我們的現實世界抽象為程序代碼

  • 面向對象
  • 組件封裝
  • 設計模式
  • 結構模式

說一說到底什麼是面向對象?

有人說面向對象就是程序能看到的都是“對象”,我想這個說法沒錯,但是並不深刻。真正的面向對象同樣需要向上和向下兩部分。

向下:面向對象三大機制

  • 封裝:隱藏內部實現
  • 繼承:複用現有代碼
  • 多態:改寫對象行為

向上:掌握什麼是“好的面向對象設計”,有抽象思維。

也就是說,僅僅掌握了封裝、繼承、多態並不能說明你的程序就是面向對象設計,還要有抽象思維,懂得如何用好這三大機制才能完全掌握面向對象。可以將面向對象理解為劍術,你僅僅會揮、刺等這些基本操作一定不叫劍術,還需要靈活的運用這些基本功才能叫做劍術。現在你懂什麼叫做面向對象了嗎?

軟件設計的固有複雜性

軟件設計複雜的根本原因是什麼?那就是變化,變化來源於很多,比如客戶的需求、技術平臺、市場環境等的變化。這些變化導致了軟件設計的複雜性,不像蓋樓,樓建成後不會加一層,但是對於軟件設計來說,這是常有的事情。

那麼如何解決這樣的複雜性呢?無非就是分解和抽象。分解就是將複雜問題分解為多個小問題,例如C語言。但是僅有分解是不夠的,還需要抽象,抽象就是忽略事物的非本質,著重於事物的本質特徵。

以上的思想就是我們作為一個軟件從業人員或者以後會從業的人員應該知道的一些想法,我從宏觀的角度告訴了大家為什麼要學習設計模式,設計模式和麵向對象有什麼關係。我想任何一個程序猿都要掌握這兩種思維或者叫能力,希望大家以後能節節高升。

面向對象你必須知道的幾件事!

文章是純手打的,創作不易,大家多多支持。

以後的文章我會詳細講解每一個設計模式,對於文章觀點有意見的朋友可以私信我。喜歡的朋友可以關注一下,防止以後迷路。


分享到:


相關文章: