使用Dagger2的好处: 1.增加开发效率、省去重复的简单体力劳动首先new一个实例的过程是一个重复的简单体力劳动, dagger2完全可以把new一个实例的工作做了,因此我们把主要精力集中在关键业务上、同时也能增加开发效率上。 省去写单例的方法,并且也不需要担心自己写的单例方法是否线程安全,自己写的单例是懒汉模式还是饿汉模式。 因为dagger2都可以把这些工作做了。
2.更好的管理类实例 每个app中的ApplicationComponent管理整个app的全局类实例, 所有的全局类实例都统一交给ApplicationComponent管理,并且它们的生命周期与app的生命周期一样。 每个页面对应自己的Component,页面Component管理着自己页面所依赖的所有类实例。 因为Component,Module,整个app的类实例结构变的很清晰。
3.解耦 假如不用dagger2的话,一个类的new代码是非常可能充斥在app的多个类中的, 假如该类的构造函数发生变化,那这些涉及到的类都得进行修改。设计模式中提倡把容易变化的部分封装起来。