Spring 中的 IoC 的实现原理就是工厂模式加反射机制。
-
interface Fruit {
-
public abstract void eat();
-
}
-
class Apple implements Fruit {
-
public void eat(){
-
System.out.println("Apple");
-
}
-
}
-
class Orange implements Fruit {
-
public void eat(){
-
System.out.println("Orange");
-
}
-
}
-
class Factory {
-
public static Fruit getInstance(String ClassName) {
-
Fruit f=null;
-
try {
-
f=(Fruit)Class.forName(ClassName).newInstance();
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
return f;
-
}
-
}
-
class Client {
-
public static void main(String[] a) {
-
Fruit f=Factory.getInstance("io.github.dunwu.spring.Apple");
-
if(f!=null){
-
f.eat();
-
}
-
}
-
}