IOC 是一种使应用程序逻辑外在化的设计模式,所以它是被注入而不是被写入客户机代码中。
通过IoC模式可以彻底解决这种耦合,它把耦合从代码中移出去,放到统一的XML文件中,通过一个容器在需要的
时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中,这可能就是“依赖注入”说法的来源了。
IoC的解耦合是指解开了代码中的耦合,把耦合关系拿到配置文件中,统一由容器来控制的。
我得例子:
public class A ... {
B b;
C c;
public void sayHello() ...{
System.out.println("Hello, I'm a, but i user B and C now.!!!");
}
.........get set 方法
}
public class B ... {
public void sayHi() ...{
System.out.println("Hi, I'm b");
}
}
public class C ... {
private String mail;
private String name;
.........get set 方法
}
public final class Boot ... {
public static void main(String[] args) ...{
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
A a = (A) ctx.getBean("a");
a.b.sayHi();
a.sayHello();
System.out.println(a.c.getMail());
}
}
输出为:
Hi, I ' m b
Hello, I ' m a, but i user B and C now.!!!
shawn@etraveltek.com
public class A ... {
B b;
C c;
public void sayHello() ...{
System.out.println("Hello, I'm a, but i user B and C now.!!!");
}
.........get set 方法
}
public class B ... {
public void sayHi() ...{
System.out.println("Hi, I'm b");
}
}
public class C ... {
private String mail;
private String name;
.........get set 方法
}
public final class Boot ... {
public static void main(String[] args) ...{
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
A a = (A) ctx.getBean("a");
a.b.sayHi();
a.sayHello();
System.out.println(a.c.getMail());
}
}
输出为:
Hi, I ' m b
Hello, I ' m a, but i user B and C now.!!!
shawn@etraveltek.com