1. 程式人生 > >《必須知道.NET》3.OO之美

《必須知道.NET》3.OO之美

哲學 .net 都是 依賴 重新 隔離 logs mar -m

3.2 依賴的哲學

3.2.1 本質詮釋

“不要調用我們,我們會調用你”

3.2.2 什麽是依賴,什麽是抽象

“耦合是不可避免的”


(1)什麽是依賴和耦合

依賴闡釋耦合,耦合量化依賴程度。

依賴角度:

  • 無依賴,
  • 單項依賴,
  • 雙向依賴

耦合角度:

  • 零耦合,沒有依賴。
  • 具體耦合,一個類持有另一個具體類引用。
  • 抽象耦合,發生具體類和抽象類的依賴,最大作用通過對抽象依賴,應用多態,實現靈活擴展性和穩定性。

設計的目標:高內聚,低耦合
低耦合:代表了實現最簡單的依賴關系,盡可能地減少類與類、模塊與模塊、層次與層次、系統與系統之間的聯系;

(實現單向依賴,實現抽象的耦合,都是實現低耦合的基礎條件。)

高內聚:一方面代表了職責的統一管理,一方面又代表了關系的有效隔離;


(2)關於抽象和具體

抽象 -> 能被具體層復用和覆寫 -> 穩定性
具體 -> 體現系統動態性和變動性 -> 變動性

3.2.3 重新回到依賴倒置

依賴於抽象,對接口編程,對抽象編程!

3.2.4 IOC與DI

1.控制反轉(IOC),代碼的控制器交由系統控制而不是在代碼內部,消除組件或模塊間的直接依賴;
2.依賴註入(DI):

  1. 接口註入
  2. 構造器註入
  3. 屬性註入
  4. .NET平臺下,Attribute實現註入。

《必須知道.NET》3.OO之美