位置: 首页 > 梅花案例

android移动应用开发案例教程中的梅花易数 移动应用遗留系统重构(8)- 依赖注入篇

android移动应用开发案例教程中的梅花易数 移动应用遗留系统重构(8)- 依赖注入篇

作者:DTO顾问黄俊斌

前言

上一篇移动应用遗留系统重构(7)-解耦重构demo(一)我们重构了文件包并提取了对应的接口,但是发现是逐层接口)为了交付,我们需要手动维护大量的构造方法和相应的注入,对于代码的管理和维护非常不便,同时随着解耦接口的创建越来越多android移动应用开发案例教程中的梅花易数,会产生越来越多的样板代码,所以我们需要更好的统一管理的方式。

本文主要分为3个部分。第一部分是常见的依赖注入方法,第二部分是业界优秀的依赖注入实践android移动应用开发案例教程中的梅花易数 移动应用遗留系统重构(8)- 依赖注入篇,最后我们会继续重构依赖注入。

依赖注入意味着静态注入(在编译时连接依赖的代码)

静态注入是最常见的方式,依赖于类中的抽象,暴露接缝,在调用的地方注入实现。常用的注入方法有2种

构造函数注入。您将一个类的依赖项传递给它的构造函数(这就是上一篇文章中使用的方式)字段注入(或注入)。某些框架类(如 和 )由系统实例化,因此无法进行构造函数注入。使用字段注入时,依赖会在类创建后实例化

由于依赖项是在编译时链接的,因此在编辑阶段进行类型检查。

动态注入(在运行时连接依赖)

动态注入最常见的方式是通过反射机制在运行时注入。

由于是运行时连接依赖,所以编译阶段没有检查,存在反射导致的性能问题。但好处是灵活性,如果有动态加载的模块,这种方式处理起来比较容易。

比较的

android项目实战手机安全卫士开发案例解析_android移动应用开发案例教程中的梅花易数_android移动开发教程

行业最佳实践

如上所述,以手动方式管理依赖注入非常困难且具有挑战性。幸运的是,业界已经有成熟的解决方案。在本章中,我们着眼于行业中的最佳实践。

刀柄

Hilt 使用静态注入方法,建立在依赖注入库之上,提供了一种整合到应用程序中的标准方法。

详细介绍和使用可以查看官方介绍。

//de…

在这里,我们强调了这个库的一些优点。

相比之下android移动应用开发案例教程中的梅花易数,它实际上使用起来更简单。IDE支持链接跳转,开发完整的测试套件,方便自动化测试,编写生态组件。生态链完整,社区活跃。

Koin 是一个实用且轻量级的依赖注入框架供使用。它是纯编写的,只使用函数解析,没有代理,没有代码生成,也没有反射。

详细介绍和使用,也可以查看官方介绍。

-koin.io/docs/…

这里我们也分享一下这个库的一些优点。

使用简单,没有复杂的注解,比 hilt 更轻量级,编译时间更快,生成的代码更少

当然,既然koin本身是用语言写的android移动应用开发案例教程中的梅花易数,最好的项目也是用用写的。相比hilt,没有那么细致的生命周期管理和IDE支持,也没有生态丰富度。

依赖注入重构示例

早些时候,我们分享了一些业内优秀的依赖注入实践。由于是用java语言开发的,考虑到后续向生态系统的迁移,我们决定采用Hilt方案。

我们不会演示具体的 Hilt 转换过程。可以参考官网的文档进行操作。这里我们对比一下改造前后的代码片段。

具体代码:链接

使用手动注入:

android移动应用开发案例教程中的梅花易数_android项目实战手机安全卫士开发案例解析_android移动开发教程

使用 Hilt 注入:

android移动开发教程_android项目实战手机安全卫士开发案例解析_android移动应用开发案例教程中的梅花易数

Hilt 本质上是在编译时生成代码,并通过注解和插件将其注入到我们的类中。使用框架可以帮助我们减少大量的模板代码,统一配置管理。

这里需要注意的是,测试代码也需要进行相应的配置。

android移动开发教程_android移动应用开发案例教程中的梅花易数_android项目实战手机安全卫士开发案例解析

总结

在本章中,我们介绍了业界常见的依赖注入方法和最佳实践。同时,我们还将改造和使用 Hilt 来统一管理注入。通过IDE的依赖分析,我们可以发现,如果App有依赖,则对UI存在编译依赖。

android项目实战手机安全卫士开发案例解析_android移动应用开发案例教程中的梅花易数_android移动开发教程

在下一篇移动应用遗留系统重构(9)-)中android移动应用开发案例教程中的梅花易数 移动应用遗留系统重构(8)- 依赖注入篇,我们将分享业界常用的页面路由方法和最佳实践,并继续进行改造和优化。

参考

依赖注入

示例代码

系列链接

移动应用遗留系统重构(1)- 开放

移动应用遗留系统重构(2)- 架构

移动应用遗留系统重构(3)-示例

移动应用遗留系统重构(4)-分析)

移动应用遗留系统重构(5)-重构方法)

移动应用遗留系统重构(6)-)

移动应用遗留系统重构(7)-解耦重构演示(一)

标签: 重构 android开发 android架构

梅花相关内容