Java之控制反转(Inversion of Control)

什么是控制反转 ?

顾名思义,就是主动变被动。依赖注入就是控制反转的一种表现形式,本来自己要用的对象自己主动创建就好,现在改为依赖注入,需要通过外部程序才能使用自己需要的对象。

所以, 控制反转其实是一个很广泛的概念,而依赖注入是控制反转的一个例子。

IoC模式,系统中通过引入实现了IoC模式的IoC容器,即可由IoC容器来管理对象的生命周期、依赖关系等,从而使得应用程序的配置和依赖性规范与实际的应用程序代码分离。其中一个特点就是通过文本的配置文件进行应用程序组件间相互关系的配置,而不用重新修改并编译具体的代码。

也可以说,是通过把一部分控制器转交给外部容器和配置文件,从而实现解耦。

事实上,但凡框架就肯定会涉及控制反转。 传统的程序开发,人们总是从main 函数开始,调用各种各样的库来完成一个程序,如此开发者控制着整个运行过程.

package demo;
public class Activity {
    public  Activity(){
        this.onCreate();
    }
    public void onCreate(){
        System.out.println("onCreate called");
    }
    public void sayHi(){
        System.out.println("Hello world!");
    }
    public static void main(String[] args) {
        Activity a = new Activity();
        a.sayHi();
     }
}

而人们使用框架(Framework)开发时,是框架控制着整个运行过程,也是框架和普通类库最大的不同点.

package demo;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.append("Hello ");
        tv.append("world!");
        setContentView(tv);
    }
}

滚动到顶部

免费制作创意短视频活动

复工复产之际,博视优学隆重推出免费制作视频活动——只需告诉我们您的视频需求,我们将免费为您制作一个创意短视频,用于您的营销推广或教学实践等。零成本试水短视频,开放名额有限,机不可失,不要犹豫!