我正在学习ButterKnife和匕首,并且知道Butterknife只能帮助避免样板代码(Binding视图)而且它并没有真正注入。在这种情况下,匕首恭维Butterknife,因为它注入了代码。现在绑定视图和注入视图有什么区别?
答案 0 :(得分:4)
Butterknife - 绑定视图:它将视图从XML布局绑定到Java成员变量。因此,您不必手动调用findViewById
来绑定视图。
Dagger - 依赖注入库,用于注入依赖项:
简单来说,依赖注入意味着您将依赖项传递(注入)到任何类,而不是在类本身内创建依赖项。
说,你有一个名为ClassA的类,它需要一个ClassB实例。一种方法是您可以在A类本身内创建ClassB的实例。但是在依赖注入中,我们在外部创建ClassB实例,并通过其构造函数或setter方法将其传递给ClassA。
依赖注入可以在没有任何框架的情况下完成,但是如果你有一个大型项目并且它有很多复杂的依赖项,它会变得很难看。 Dagger是一个Android框架,它有助于以更清洁的方式进行依赖注入。
答案 1 :(得分:0)
Dagger Dependency Injection'构造应用程序类的实例并满足它们的依赖关系'。它构造实例的方式基于匕首提供和模块中定义的规则集。
Butterknife使用注释处理来注入视图。它有简化Id等查找视图的方法