8大設計原則

設計模式-八大設計原

開始學習設計模式
GOF設計模式
學習設計模式,爲了是設計出更加優美,好維護,可複用,可拓展的優秀代碼。
八大設計原則
1.依賴倒置原則:
高層模塊不依賴底層模塊,二者都應該依賴抽象,
抽象不依賴實現細節,實現細節應該依賴於抽象。
這一原則與下面的針對接口變成而不是針對實現編程是一個道理,我們設計一個程序,我們應該先想好我們想要抽象什麼,它應該具有什麼樣的能力,而不是先考慮怎麼實現,這其中的具體方法,而最後在根據自己寫的具體實現,從而彙總出最後的接口是什麼。
2 開放封閉原則:
對拓展開放,對更改封閉
類模塊應該是可 拓展的,但是不可修改的。
我們應該定義好接口之後就儘可能保證接口層的穩定,
3 單一職責原則:
一個類應該僅有一個引起他變化的原因
變化的方向隱含類的責任
若一個類中變化的部分過多,從而加劇了程序的維護難度,從而也許會修改這個類中的接口部分,也就違反了上面的第二原則。
其中變化(使用的具體實現等等),其中一定要明確這個部分中的具體目的。
4 Liskov替換原則:
子類必須能夠替換他們的基類。
繼承表達類型的抽象。
假如子類不可以替換他們的基類那麼大部分的設計模式都無從談起。
5 接口隔離原則:
不應該“強迫”客戶程序依賴他們不用的方法。
接口應該小而完備。
設計對象的時候我們應該明確的知道這個對象應該要包含什麼功能,然後做出相應的接口,其餘一些客戶不用的方法全部隱藏起來。
6 優先使用對象組合,而不是類繼承:
白箱複用:將父類的全部內容暴露給子類。
黑箱複用:只暴露想暴露的部分,其餘的內容對其類不可見。
**類繼承通常稱爲白箱複用
**對象組合通常被稱爲黑箱複用
繼承在某種程度上破壞了封裝性,子類父類耦合度高
對象組合則只要求被組合的對象具有良好的定義的接口。
7 封裝變化點
使用封裝來創建對象之間的分界層,
讓設計者可以在變化的另一側修改,而不會對另一側產生不良影響,
從而達到層次間的鬆耦合。
8 針對接口編程,而不是針對實現編程
不將變量類型聲明爲某個特定類型的具體類,而是聲明爲某個接口。
客戶程序無需知道對象的具體類型,只需要知道對象所具有的接口。
減少系統中各部分的依賴關係,從而實現”高內聚,鬆耦合“的類型設計方案。

原文鏈接:https://blog.csdn.net/weixin_41741359/article/details/100023144

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章