方法一:
<bean id="musicBox" class="onlyfun.caterpillar.factory.MusicBoxFactory"
factory-method="createMusicBoxStatic"></bean>
方法二:
<bean id="musicBoxFctory" class="onlyfun.caterpillar.factory.MusicBoxFactory"></bean>
<bean id="myMusicBox" factory-bean="musicBoxFctory" factory-method="createMusicBox"></bean>
正确设置:
import onlyfun.caterpillar.factory.IMusicBox;
public class MusicBoxFactory {
public IMusicBox createMusicBox() {
return new IMusicBox(){
public void play() {
System.out.println("播放钢琴音乐...");
}
};
}
public static IMusicBox createMusicBoxStatic() {
return new IMusicBox(){
public void play() {
System.out.println("播放钢琴音乐...");
}
};
}
}
——————————————————————————————
注意点:
方法一要求factory-method必须是静态函数。
第一个可以理解为,调用工厂类的类方法(静态方法)
方法二要求factory-method必须不是静态函数。
第二个可以理解为,调用工厂类实例的工厂方法,要求不能是静态的。