C#五大基本原則

單一職責原則
就一個類而言,應該僅有一個引起他變化的原因。
也就是就一個類而言,僅有一個功能。
也就是在進行軟件設計的時候,一個類不要承擔太多的功能,如果一個類中如果承擔太多的功能,就等於將這些職責耦合在一起。一個功能的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。
設計軟件真正要做的許多內容,就是發現職責並把那些職責相互分離。

開放封閉原則
開放是指軟件的類是可以擴展的,
軟件的封閉原則,是指軟件的是不可以修改。
軟件的擴展功能是,如果軟件的某些方面的功能或者數據變動性強,或者擴展空間大,我們就儘量用父類將各個功能聯繫起來,然後用子類,將各個功能封裝起來。
無論模塊多麼“封閉”,都對存在一些對之無法封閉的變化。既然不可能完全封閉,設計人員必須對於他設計的模塊應該對那種變化封閉做出選擇。
也就是對當我們要進行封閉和開放的選擇的時候。我們應當慎重選擇,我們應找出那些變動性強的,擴展空間大的用抽象進行隔離。

依賴倒轉原則
依賴倒轉原則的根本是:抽象不應該依賴細節,細節應該依賴抽象。
說白了就是子類應當依賴父類,父類不應依賴子類。接口不應依賴實現類,實現類應當依賴接口。
之所以讓實現類依賴接口,那是因爲實現類有許多個,但是接口只有一個。如果接口依賴具體類,如果該具體類出現問題,接口也就不能正常使用,而依賴於接口的其他的類也將不能正常使用,極有可能因爲該具體類的一個小的錯誤,從而導致整個系統的癱瘓。

里氏代換原則
子類型必須能夠替換掉他們的父類型
也就是如果一個軟件實體使用的是一個父類的話,那麼一定使用於其子類,而且它察覺不出父類對象和子類對象的區別。
因爲如果這個軟件實體使用的是一個父類,這麼該父類的子類擁有該父類的所有的屬性和方法還有變量(除了private聲明的方法,變量,屬性)。而子類不僅有父類的所有的功能和屬性還有變量,它還有自己的功能屬性和變量。該軟件能在父類上運行,當然能在其子類上運行。

迪米特法則
如果兩個類不必彼此直接接通,那麼這連個類就不應當發生直接的交互作用。如果其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。
迪米特法則強調的是成員之間的松耦合。迪米特法則的運用可以減少要聯繫兩者之間的直接聯繫,從而減少兩者之間的耦合,當其中一個不能使用的時候,不影響另一個正常工作。

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