在大話中最重要的兩句話是:抽象不應該依賴與細節,細節應該依賴於抽象。還有一句是:針對介面程式設計。不要對實現程式設計。
類a直接依賴類b,假如要將類a改為依賴c。則必須通過須要改動類a的**來達成,但假設,類a是高階模組,負責業務邏輯;類b和類c是低層模組,負責主要的源自操作,這樣改變a會給程式帶來不必要的風險。
將類a改動為依賴介面i,類b和類c各自實現介面i,類a通過介面i來與類b和c發生纖細,則會大大減少改動a的機率。
用抽象構建框架,用事先擴充套件細節,相對於細節的多邊性,抽象的東西要穩定的多。
場景:客戶去商場買東西,要買水果。買的東西是低層模組,客戶是高層模組。它決定了要買什麼。
class fooda //低層的實現
}class client
}class program
}
上述這樣做是沒有問題的,可是假設客戶想要買其他的東西呢?這時候。我們可能就會想要在建乙個類。讓客戶依賴它。這時候,就要改動client類和加入乙個類了。
假設我們設計port,讓各種低層模組實現port,而客戶僅僅依賴port不即可了。
在看第二段**。
inte***ce ifood//體現抽象
class fooda : ifood //讓低層的模組實現介面
}class foodb : ifood
}class client
}class program
}
這樣是不是科擴充套件性就非常棒了。當然這是橫向擴充套件。縱向是。我們能夠加入另外乙個類:銷售員,讓銷售員類依賴介面即可了。
a.高層模組不應該依賴低層模組,兩個都應該依賴抽象。
b.抽象不應該依賴細節。細節應該依賴抽象。
《大話設計模式》設計原則
單一職責原則 srp 就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。軟體設計真正要做的許多內容,就是發現職責並把那些職責相...
大話設計模式之設計原則
在總結設計模式之前,我覺得有必要把程式設計中要遵循的幾個設計原則總結一下,因為在後面總結設計模式的時候,你會發現,基本上設計模式都是設計原則的體現和應用而已,有助於我們後期的總結學習。單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個...
大話設計模式 依賴倒轉原則
1 定義 程式要依賴於抽象介面,不要依賴於具體實現。簡單地說就是要求對抽象進行程式設計,不要對實現進行程式設計,這樣就降低了客戶與實現模組間的耦合。2 抽象不應該依賴細節,細節應該依賴於抽象,即針對介面程式設計,不要對實現程式設計。3 高層模組 例如cpu 記憶體 硬碟 程式中的主 不應該依賴於低層...