IoC(Inversion of Control)被称为“控制反转”,它又有一个比较让人好理解的概念,DI(Dependency Injection),即依赖注入。
IoC指的就是由容器控制程序之间的关系,而非传统实现中,有程序代码直接控制。即组件之间的依赖关系有容器在运行觉定。
为了让读者更好的了解IoC的概念,笔者举一个国外网站看到的一个运行简单的实例来帮助读者理解。下面的实例中,在类MovieLister中提供一个根据导演的名称获取他所有导演的影片的方法,在该类中,需要调用一个影片查找器获得所有影片信息。在该类中调用影片查找器的工厂来获得具体的影片查找器。
第一步:准备工作
导入好包,创建好包。
第二步:编写影片类:Movie.java
编写影片查找器接口:MovieFinder.java
编写影片查找器实现类: SampleMovieFinder.java
编写影片查找器工厂类:SampleMovieFinder.java
编写测试类:MovieLister.java
运行结果: