2017-08-04 74 views
0

我正在學習ButterKnife和匕首,並開始知道Butterknife只有幫助避免樣板代碼(綁定視圖),它並沒有真正注入。在這種情況下,匕首稱讚Butterknife,因爲它注入了代碼。現在Binding視圖和Injecting視圖有什麼區別?綁定視圖和注入視圖有什麼區別?

回答

3

Butterknife - 綁定的觀點:它結合從XML佈局到Java成員變量視圖。因此,您不必手動撥打findViewById來綁定視圖。

匕首 - 依賴注入庫,注入依賴:

依賴注入,簡單來說,這意味着你傳遞(注入)依賴於任何類,而不是創建類本身內部的依賴。

說,你有一個叫做ClassA的類,它需要一個ClassB的實例。一種方法是可以在Class A本身內創建ClassB的實例。但是在依賴注入中,我們在外部創建ClassB實例,並通過它的構造函數或setter方法將它傳遞給ClassA。

依賴注入可以在沒有任何框架的情況下完成,但是如果你有一個大項目並且它有很多複雜的依賴關係,它會變得很難看。 Dagger是一個Android框架,它有助於以更清晰的方式進行依賴注入。

+0

有什麼叫做「視圖注入」或者「視圖注入」和「依賴注入」是一樣的嗎? –

+0

我想,「視圖注入」只是意味着將視圖從xml綁定到java。點擊此處查看:https://github.com/JakeWharton/kotterknife – Bob

+1

依賴注入是一種編程設計模式/概念,我們可以使用它將任何依賴關係(包括視圖依賴關係)注入任何其他類。 – Bob

0

Dagger依賴注入'構建應用程序類的實例並滿足它們的依賴性'。它構造你的實例的方式是基於你的匕首提供和模塊中定義的規則集。

Butterknife使用註釋處理來注入視圖。它的方法來簡化通過標識的查找視圖等

ButterKnife

Dagger 2

+0

它不回答我的問題「綁定視圖和注入視圖之間有什麼區別?」 –

相關問題