《必須知道.NET》3.OO之美
阿新 • • 發佈:2018-02-21
哲學 .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):
- 接口註入
- 構造器註入
- 屬性註入
- .NET平臺下,Attribute實現註入。
《必須知道.NET》3.OO之美