例如:建築商不會在蓋好的100層樓裡要求加入乙個地下室,但這在軟體領域確實很常見的。根本原因就是軟體系統設計中面臨頻繁的需求變化,客戶物件需求的變化,平台的變化等,這也是軟體系統複雜的原因。
解決方法一般兩種:
1是分而治之,對應於面向過程的語言,如c語言
2是抽象,既然不能全部掌握複雜的物件,我們選擇忽視物件非本質的細節,而去處理泛化和理想化了的物件模型。
底層思維:
如何把握機器底層,從微觀理解物件構造。
1.語言構造 2.編譯轉換 3.記憶體模型 4.執行時機制
抽象思維
將我們周圍的世界抽象為程式**。
1.物件導向 2.組建封裝 3.設計模式 4.架構模式
向下:深入了解三大物件導向機制。
封裝:隱藏內部實現。繼承:復用現有**。多型:改寫物件行為。
向上:深刻把握物件導向所帶來的抽象意義,理解如何使用這些機制來表達現實世界,掌握什麼是好的物件導向設計。
1.理解隔離變化:物件導向的的構建方式更能適應軟體系統的變化,能將變化帶來的影響力減為最小。
2.各司其事,物件導向的方式更強調各個類的責任,由於需求變化導致的新增型別不應該影響原來型別的實現。所謂各司其職。
3.什麼是物件,從語言實現層面上說,物件封裝了**和資料。從規格從面上說,物件是一系列可被使用的公共介面,從概念層面上說,物件是擁有某種責任的抽象。
設計模式 重新認識物件導向
從一道面試題講起.分析 第一點 顯然需要有park,floor,place三個類 第二點 每個車位 place 應有乙個in和out方法監控車輛,同時應該有乙個狀態.第三點 顯示空餘車輛的數量,這個行為應該由停車場park來實現,並且是通過每個floor的彙總 第四點 攝像頭class輸入的是乙個車...
設計模式學習之 物件導向理解
作為乙個程式猿,總覺得應該學習一下,並記錄下來,以便以後檢視,就開始寫我的部落格之旅,剛開始寫可能寫得不好,但總算邁出第一步,相信以後在這條c 程式路上可以越走越順。面對複雜問題如何解決 第一種 分解 分而治之,將大問題分解為幾個小問題,將複雜問題分解為幾個小問題。這也是在結構化語言設計中最常用的方...
物件導向 設計模式
提到設計模式,不得不感謝gof gang of four,四人組 他們1995年出版的 設計模式 一書,第一次將設計模式提公升到理論高度,並將之規範化。書中一共總結了23種基本的設計模式。而這23中設計模式幾乎涵蓋了物件導向設計過程中所有問題的解決方案。書中提到的23種設計模式分別是 1.單例模式 ...