2022年1月10日 星期一

[Geroge]面向對象設計-依賴倒置原則DIP

 --影片內容--

依賴導致原則(Dependency Inversion Principle)

定義: 要依賴抽象, 不要依賴於具體, 客戶端依賴於抽象耦合

低耦合

抽象不應當依賴於細節, 細節應當依賴於抽象

要針對介面編程, 不針對實現編程

優點: 使用傳統過程化程序設計所創建的依賴關係, 策略依賴於細節, 這是糟糕的, 因為策略受到細節改變的影響, 依賴導致原則使細節和策略都依賴於抽象, 抽象的穩定性決定了系統的穩定性


例子:

一個mother類別, 具有讀書功能, 如果我們將它和Book類別綁在一起, 很顯然, 如果mother要讀Newspaper就沒有辦法實行, 這就是依賴具體, 改法是, 產生一個抽象的介面, 使Mother類別去依賴抽象的介面























這樣設計下, 就使Mother讀取內容變得很有彈性, 可以是Book, 可以是Newespaper, 依賴介面設計, 依賴抽象, 而不是依賴於具體的實現, 這樣我們程式的靈活性就更好了

參考: 

https://www.youtube.com/watch?v=f4u4YNhCO6U&list=PLGmd9-PCMLhb16ZxeSy00qUsBazXgJyfM&index=7

https://github.com/iw5420/geroge-design-pattern



沒有留言:

張貼留言

[leetcode] [KMP] KMP

ABCDABD... ABCDABF... 簡單的說, 傳統解兩字串匹配部分 可能會來個雙迴圈, 哀個比對, 當不匹配的時候, 會將下方列再後移1位 然後不匹配再後移 然而 如果像上放已經有4個屬於匹配的字串, 她就應該直接往後移四位來匹配, 而不是只移動1位 隱藏的思維是, 當...