控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。
本文主要通过一个例子来学习依赖注入。
1,定义一个接口:
public interface Instrument{ void paly(); }
2,创建一个类来实现该接口:
public class Piano implements Instrument { public void play(){ System.out.println("PLINK PLINK PLINK"); } }
3,创建一个使用者:
public class User{ Instrument instrument; public Instrument getInstrument{ return instrument; } //setter注入: public Instrument setInstrument (Instrument instrument ){ this. instrument = instrument ; } public void function(){ instrument.play(); } }
4,创建一个外部“容器”:
public class Container{ public static User getBean(){ Instrument i = new Piano(); User u = new User(); u.setInstrument(i); return u; } }
5,建一个测试类:
public class Test{ public static void main(String[] args){ User u= Container.getBean(); u.function(); } }