Dependency Injection的個人白話解釋

  • 547
  • 0

Dependency Injection的個人白話解釋

參考完各方大大的文章之後
以我個人的心得來看其實就是在class類別裡面的一個member(通常也是一個class)宣告成一個interface
而不是宣告成一個實際的class,於是此member就可以在往後任何時候再進行實做,而且此class在初始化時
就可以把實做member的類別當成參數傳進去此class
這樣一來member的型別就不會綁死在某個實際的class

實際舉一個例子的話,假使有一個class類別叫做"列印工作",底下的其中一個member原本是另一個class類別叫做"EpsonPrinter"
而EpsonPrinter當然會有個method叫做 用Epson列印相關內容(),想當然要列印的時候,寫個語法像是下面這樣就可以列印了
new 列印工作().用Epson列印相關內容()

不過這樣子的話,以後列印的工作就會綁死在EpsonPrinter類別,改善的方法就是在宣告 列印工作 類別的member的時候
宣告一個interface介面,名稱不然就叫做 IPrinter,如此一來以後有任何其他廠牌的印表機要列印時,再自行實做IPrinter介面即可。

以上個人粗淺見解

參考資料:
自己的心得