依賴注入

依賴注入是面向對象編程很重要的思想,是實現解耦很重要的一種手段。編程

依賴注入是指a依賴於b,a不直接在內部實例化b,而是經過注入的方式,也就是構建和使用分離。與之相關的思想是,面向接口編程,而不要面向實現編程。設計模式

依賴注入通常須要面嚮對象語言,或者能夠用必定方式實現面向對象的語言(好比lua能夠利用元表實現類和繼承,js或者ts也有類和對象的概念)。爲啥須要面嚮對象語言呢?由於依賴注入須要面向接口編程,這須要語言支持派生和多態。服務器

依賴注入的形式主要有3種:1.構造函數注入(Constructor Injection)。2.接口注入。例如setMethod方法(Setter Injection)。3.設值方法(Setter Injection)。其實2和3是屬於同一種方法。mvc

應用:在23種設計模式當中,裝飾者模式也有運用相似依賴注入的思想(但每一個裝飾者之間其實應該沒有依賴關係?),每一個裝飾者在裝飾本身以前,先裝飾經過構造函數注入的前一個裝飾者須要裝飾的東西。相似的,策略模式也算是運用了依賴注入的思想。最近在看puremvc,感受它裏面的不少實現也都是依賴注入的思想。ide

其餘:與依賴注入思想比較相似的是服務器定位器模式,它的思想是a依賴於b,a不直接在內部實例化b,而是經過服務器定位器得到b的實例。這實際上仍是依賴注入的思想,只不過換了一種實現方式。函數

相關文章
相關標籤/搜索