一、要學習設計模式,先了解什麼是設計模式:
1、什麼是設計模式?
設計模式描述了軟體設計過程中某一類常見問題的一般性的解決方案。
2、什麼是物件導向設計模式?
物件導向設計模式描述了物件導向設計過程中、特定場景下、類與相互通訊的物件之間常見的組織關 系。
二、從物件導向談起:
這裡談的是物件導向的設計模式,那就先讓我們了解一下什麼是物件。
從概念層面講,物件是擁有某種責任的抽象;
從規格上講,物件是一系列可以被其他物件使用的公共介面。
從語言實現層面,物件封裝了**和資料(或者說行為和狀態)。
三、從設計原則到設計模式:
所有好的設計模式都有一些共同點,而這些共同點總結出來,便是**實現的時候所要遵循的一些良好的原則。
1、 針對介面程式設計不是針對實現程式設計
客戶程式無需所使用物件的內部實現,只需要知道物件的外部介面。
2、優先使用物件組合而不是類繼承
類繼承通常為「白箱服用」,在某一定程度上破壞了物件的封裝性。
3、 封裝變化點
封裝不僅僅是資訊隱藏。把變化的封裝在乙個地方,把不變的封裝封裝在另外乙個地方。讓設計者可以在分界層的一側進行修改,而不會對另外一側產生影響,從而實現層次間的松耦合。
4、使用重構得到模式
源**就是設計,根據專案的不斷演進使用設計模式。沒用一上來就用得好的設計模式。因為設計模式不可能像演算法一樣,隨便可以套用。
幾個更具體的原則:
1、單一職責原則
.net類庫,file類:負責檔案路徑,檔案存不存在之類的資訊;fileinfo類:判斷檔案建立日期之類的檔案具體資訊。兩個類分開實現。
2、開放封閉原則
類模組應該是可以擴充套件的,但是不可修改(對修改封閉,對擴充套件開放)
3、 liskov替換
子類必須能夠替換他們的基類
4、 依賴倒置原則
高層模組不應該依賴於底層模組,二者應該依賴於抽象;
抽象不應該依賴於實現細節,實現細節應該依賴於抽象。
5、介面隔離原則
不應該強迫客戶程式依賴於他們不用的方法。
設計模式一般遵循這些原則,不要死死套用設計模式,根據這些原則寫出來的**,說不定就是乙個模式了,這才是內功!
重要宣告:本文是筆者學習李建中老師的時候所記錄筆記,裡面知識並非原創。
物件導向的設計模式 1
封裝 繼承 多型 高聚合低耦合。就乙個類而言,應該僅有乙個引起它變化的原因 軟體實體 類 模組 方法 對於擴充套件是開放的,對於修改是封閉的。乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它覺察不出父類物件和子類物件的區別。高層模組不應該依賴低層模組,兩個都應該依賴抽象 抽象不應該...
物件導向設計模式學習(一) 物件導向設計模式與原則
1。軟體設計模式是一些常見問題的一般解決案。2。物件導向設計模式是在物件導向開發中描述物件之間資訊通訊的組織關係。3。面象物件的三個特點 封裝 內部實現的隱藏 繼承 實現 復用 多型 改寫物件的行為 4。實現封裝,繼承,多型並不代表就是乙個面象物件模式設計,是面象物件模式的設計才導致了封裝,繼承,多...
設計模式(1) 物件導向的設計原則
hdis framework是乙個基於springboot kubernetes 阿里雲服務,編寫的乙個用於支撐微服務的極速開發框架。其文件詳盡,demo全面,設計合理,開箱即用,節省開發時間,提公升開發效率。配套的docker kubernetes教程已踩過各種坑,讓你的微服務無障礙的順暢執行起來...