使用轻量级容器PicoContainer来实现IOC(Inversion of Control也叫Dependency Injection)模式的Type3
简单应用实例
public interface Fruit {
void eat(Object eater);
}
public class Apple implements Fruit {
public void eat(Object eater) {
System.out.println("I'm Apple, eaten by "+eater);
}
}
public class Monkey {
Fruit fruit;
public Monkey(Fruit fruit) {
this.fruit = fruit;
}
public void eatFruit() {
fruit.eat(this);
}
public String toString() {
// TODO Auto-generated method stub
return this.getClass().getName();
}
}
public class PicocontainerTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MutablePicoContainer pico = new DefaultPicoContainer();
pico.registerComponentImplementation(Monkey.class);
pico.registerComponentImplementation(Apple.class);
Monkey monkey = (Monkey) pico.getComponentInstance(Monkey.class);
monkey.eatFruit();
}
}