一个软件是依靠多个组件相互协作,分工合作来完成的!如果组件与组件之间是紧 紧耦合在一起,就会让整个软件的 很不灵活!
例: public class Person {
private Sport sport ;
public Person() {
sport = new FootBall();
}
public void go() {
sport.play();
}
}
Sport 是一个接口,具体的实现类有Bike,FootBall,Swimming!
上面就展示要是一个人想要去踢足球时很容易的,但是要是想去骑自行车,游泳?这样就会显得很死板了!
但是我们可以Spring构造器注入方法解决
public class Person {
private Sport sport ;
public Person(Sport sport) {
this.sport = sport;
}
public void go() {
sport.play();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
<bean id="sport" class="cm.xls.czq.FootBall"></bean>
<bean id="person" class="cm.xls.czq.Person">
<constructor-arg ref="sport "></constructor-arg>
</bean>
</beans>