file : ioutputgenerator.java – 输出生成器接口
package com.h3.output; public interface ioutputgenerator { public void generateoutput(); }
file : csvoutputgenerator.java – 一个csv输出生成器用来实现ioutputgenerator接口。
package com.h3.output.impl; import com.h3.output.ioutputgenerator; public class csvoutputgenerator implements ioutputgenerator { public void generateoutput(){ system.out.println("csv output generator"); } }
file : jsonoutputgenerator.java – 一个json输出生成器用来实现ioutputgenerator接口。
package com.h3.output.impl; import com.h3.output.ioutputgenerator; public class jsonoutputgenerator implements ioutputgenerator { public void generateoutput(){ system.out.println("json output generator"); } }
package com.h3.common; import com.h3.output.ioutputgenerator; import com.h3.output.impl.csvoutputgenerator; public class app { public static void main( string[] args ) { ioutputgenerator output = new csvoutputgenerator(); output.generateoutput(); } }
存在问题
package com.h3.output; import com.h3.output.ioutputgenerator; import com.h3.output.impl.csvoutputgenerator; public class outputhelper { ioutputgenerator outputgenerator; public outputhelper(){ outputgenerator = new csvoutputgenerator(); } public void generateoutput(){ outputgenerator.generateoutput(); } }
package com.h3.common; import com.h3.output.outputhelper; public class app { public static void main( string[] args ) { outputhelper output = new outputhelper(); output.generateoutput(); } }
存在问题
package com.h3.output; import com.h3.output.ioutputgenerator; public class outputhelper { ioutputgenerator outputgenerator; public void generateoutput(){ outputgenerator.generateoutput(); } public void setoutputgenerator(ioutputgenerator outputgenerator){ this.outputgenerator = outputgenerator; } }
<!-- spring-common.xml --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="outputhelper" class="com.h3.output.outputhelper"> <property name="outputgenerator" ref="csvoutputgenerator" /> </bean> <bean id="csvoutputgenerator" class="com.h3.output.impl.csvoutputgenerator" /> <bean id="jsonoutputgenerator" class="com.h3.output.impl.jsonoutputgenerator" /> </beans>
通过spring来调用它
package com.h3.common; import org.springframework.context.applicationcontext; import org.springframework.context.support.classpathxmlapplicationcontext; import com.h3.output.outputhelper; public class app { public static void main( string[] args ) { applicationcontext context = new classpathxmlapplicationcontext(new string[] {"spring-common.xml"}); outputhelper output = (outputhelper)context.getbean("outputhelper"); output.generateoutput(); } }