【发布时间】:2017-08-04 18:47:52
【问题描述】:
我正在学习 ButterKnife 和 dagger,并开始知道 Butterknife 仅有助于避免样板代码(绑定视图)并且它并没有真正注入。在这种情况下,匕首恭维 Butterknife,因为它注入了代码。现在绑定视图和注入视图有什么区别?
【问题讨论】:
标签: android performance dagger android-annotations butterknife
我正在学习 ButterKnife 和 dagger,并开始知道 Butterknife 仅有助于避免样板代码(绑定视图)并且它并没有真正注入。在这种情况下,匕首恭维 Butterknife,因为它注入了代码。现在绑定视图和注入视图有什么区别?
【问题讨论】:
标签: android performance dagger android-annotations butterknife
Butterknife - 绑定视图:它将视图从 XML 布局绑定到 Java 成员变量。因此您不必手动调用findViewById 来绑定视图。
Dagger - 依赖注入库,注入依赖:
依赖注入,简单来说,就是将依赖传递(注入)到任何类,而不是在类本身内部创建依赖。
假设您有一个名为 ClassA 的类,它需要一个 ClassB 的实例。一种方法是您可以在 Class A 本身内创建 ClassB 的实例。但是在依赖注入中,我们在外部创建 ClassB 实例,并通过其构造函数或 setter 方法将其传递给 ClassA。
依赖注入可以在没有任何框架的情况下完成,但是如果你有一个大型项目并且它有很多复杂的依赖项,它会变得很丑。 Dagger 是一个 Android 框架,它有助于以更清洁的方式进行依赖注入。
【讨论】:
Dagger 依赖注入'构造应用程序类的实例并满足它们的依赖关系'。它构建实例的方式基于 dagger 提供和模块中定义的规则集。
Butterknife 使用注解处理来注入视图。它具有简化按 ID 等查找视图的方法。
【讨论】: