[]( )概念
---------------------------------------------------------------------
### []( )@Inject
> 1. 修饰构造方法
> 2. 修饰变量,在宿主类里,引入要注入的实例
### []( )@Module
> 生产实例的工厂,每一个实例都是通过@Provides修饰的方法提供的
> 专门解决,不是自己写的类无法在其构造函数上加@Inject的情况
> 当然自己写的类也可以通过@Provides修饰的方法提供,这样就不会找@Inject的构造函数了
### []( )Component
Component是桥梁纽带,是一个接口
> 功能1:组织依赖关系(链条)
>
> > 一个Component可以组织多个Module
> > 一个Component还可以组织引入其他的Component
> > 依赖的查找顺序为:先找@Module,如果找到了就停止,如果找不到就去找@Inject
> 功能2:为宿主类提供Inject方法
[]( )@Inject+@Component
-------------------------------------------------------------------------------------
> 所有实例类型全部在我掌控之中
> 最简单的情况 (不需要Module)
> (要注入的实例的类都是自己写的,不需要Module,自己写的类自己用@inject修饰构造方法)
### []( )构造方法不带参数
1. 注入类的构造方法使用 @Inject
class Apple @Inject constructor(){
var color:String ="red"
}
2. 必须有一个FruitComponent接口,提供一个注入方法
> 注意:参数必须为要使用对象注入的类
@Component
interface FruitComponent {
fun inject(activity: MainActivit