依賴倒置原則的本質就是通過抽象(接口或抽象類)使各個類或模塊的實現彼此獨立,不互相影響,實現模塊間的松耦合。我們在項目中使用這個原則要遵循下面的規則:
- 每個類盡量都有接口或者抽象類,或者抽象類和接口兩都具備
- 變量的表面類型盡量是接口或者抽象類
- 任何類都不應該從具體類派生
- 盡量不要覆寫基類的方法
如果基類是一個抽象類,而這個方法已經實現了,子類盡量不要覆寫。類間依賴的是抽象,覆寫了抽象方法,對依賴的穩定性會有一定的影響。 - 結合里氏替換原則使用
里氏替換原則:父類出現的地方子類就能出現。結合本章我們得出了一個通俗的規則:接口負責定義public屬性和方法,並且聲明與其他對象的依賴關系。抽象類負責公共構造部分的實現,實現類准確的實現業務邏輯,同時在適當的時候對父類進行細化。
using System; namespace ConsoleApplication2 { class Program { public interface IReader { //閱讀者 void Read(IRead read); } public interface IRead { //被閱讀物 void Read(); } //文學經典類 public class LiteraryClassic : IRead { //閱讀文學經典 public void Read() { Console.WriteLine("閱讀文學經典,滋潤內心心靈!"); } } //小說類 public class Novel : IRead { //閱讀小說 public void Read() { Console.WriteLine("閱讀小說,放松一下!"); } } //小明類 public class XiaoMing : IReader { //閱讀 public void Read(IRead read) { read.Read(); } } static void Main(string[] args) { XiaoMing xiaoming = new XiaoMing();//實例化對象小明 IRead literaryClassic = new LiteraryClassic(); //小明閱讀文學經典 xiaoming.Read(literaryClassic); IRead novel = new Novel(); //小明閱讀小說 xiaoming.Read(novel); } } }