一直以來都是從程式語言方面去理解物件導向,本以為熟悉了封裝、繼承、多型就理解了物件導向程式設計的思想。其實這是很狹隘的想法,軟體的建立並不是採用了物件導向語言編寫的程式,並採用了一些物件導向特性的東西就算是乙個真正物件導向構建的軟體了。還需要採用物件導向的設計模式來設計軟體才算得上是真正意義上的徹底掌握物件導向的思想。
申明:設計模式包含了多種軟體設計的模式,在這裡討論的暫時為物件導向的設計模式,之後簡稱「設計模式」
設計模式是為了「應對變化,提高復用」。設計模式並不是一種技巧,不可以可以照搬套用。舉個在之前公司的模式失敗例子,在公司系統期初架設階段決定用三層模式開發,然而因為並沒有真正理解何為三層模式,就照搬套用,為三層建立各自的新專案。然而在開發過程中,由於對模式並不真正了解,以至於**編寫及其不規範,更無層次感可言,到最後其中的一層簡直是冗餘**。可見,真正理解了設計模式,並在軟體設計中選取合適的模式才是設計模式得以起到正面效果,反之必將為其所傷為其所困。
有鑑於此,本人希望在此發布對設計模式的學習理解,希望網路牛人可以相互幫忙指正我理解方面的錯誤之處。
設計原則
客戶程式無需知道物件的具體型別,只需知道該介面有所需要的介面
繼承在某種程度上破環了封裝性,子父類之間耦合度高,而物件組合只要求被組合的物件有良好定義的介面,耦合度低
抽象物件之間的分界層,讓程式的變化側重於在物件的一側修改,另一側則不受影響,實現層次之間的松耦合
設計模式不宜先入為主,照搬套用,沒有一步到位的設計模式
原則細化
物件導向特徵 OO設計原則
封裝 也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏 繼承 是指這樣一種能力 它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件 實現繼承 介面繼承和可視繼承 多型 允許你將父物件設定成為和乙個或更多的他的...
物件導向設計模式學習(一) 物件導向設計模式與原則
1。軟體設計模式是一些常見問題的一般解決案。2。物件導向設計模式是在物件導向開發中描述物件之間資訊通訊的組織關係。3。面象物件的三個特點 封裝 內部實現的隱藏 繼承 實現 復用 多型 改寫物件的行為 4。實現封裝,繼承,多型並不代表就是乙個面象物件模式設計,是面象物件模式的設計才導致了封裝,繼承,多...
OO設計模式學習筆記
學習設計模式,首先要了解設計原則 學設計模式,就像學唱歌,先模仿名人,再活學活用,把別人的經驗變成自己的,然後創造自己的經驗模式 學習設計模式,是學習其他開發人員的智慧型和經驗,使用設計模式,可以更好的做到 復用 不用把設計模式都背熟,但是一定要在腦子裡有乙份設計模式的目錄,在設計時,知道什麼時候要...