> 文档中心 > 注解&反射(三)【实战--Android View IOC框架的两种实现方案】

注解&反射(三)【实战--Android View IOC框架的两种实现方案】


控制反转(Inversion of Control,英文缩写为IoC),把创建对象的权利交给框架,是框架的重要特征,并非面向对象编程的专用术语。它包括依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。

说完概念定义,IOC好像就是把new 对象的权利交由框架去实现,这样Java代码中就不必要那么多的new操作了。仅此而已吗?NO、NO、NO,Android中我们经常会使用BindView框架,为什么使用它呢?因为它让我们省去了很多findViewById的代码。其实后者就是Android中View的一种IOC框架实现。

接下来的文章,我们一起来实现自己的BindView框架。
既然我们要去实现自己的视图控制反转框架,我们知道肯定离不开注解+反射的,但是注解又分为运行时处理注解和编译时处理注解,因此有了不同的实现方案。

ItbirdStudyDemo代码

1.运行时处理注解+反射

1.1 自定义注解 ItbirdRunningBinderView

首先我们需要自定义注解ItbirdRunningBinderView,声明它的作用域和用途。我们定义ItbirdRunningBinderView主要是为了一个类中,给视图对象字段或者类使用,省去它的findViewById或者setContentView方法, 因此ItbirdRunningBinderView的用途是用来注解某个类中的字段的(ElementType.F