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



沒有留言:

張貼留言

題目: 瞬間有100-200萬筆資料量進來, 如何最快安全的接收?

如果想到快, 可能直覺就是Redis, 但是... 問:瞬間有100-200萬筆資料量進來, 如果存到redis, 這樣操作有沒有可能壓垮redis? 答: 在瞬間大量資料(如100-200萬筆)快速進入Redis,確實有可能導致Redis的性能瓶頸甚至崩潰,特別是在以下情況下:...