Java的反射机制使得对象可以在运行期间被动态创建。如果一个功能有很多种算法或者策略,可以使用策略模式,对于不同的条件创建不同的策略,如果策略会拓展,可以利用反射来减少条件判断。
1.接口
package com.yy.test.reflection;
public interface IHandler {
public void handle();
}
2.具体的策略类
package com.yy.test.reflection;
public class HandlerStrategyOne implements IHandler{
public void handle() {
System.out.println("HandlerStrategyOne handle");
}
}
package com.yy.test.reflection;
public class HandlerStrategyTwo implements IHandler{
public void handle() {
System.out.println("HandlerStrategyTwo handle");
}
}
3.测试类
package com.yy.test.reflection;
public class HandlerTest {
public static void main(String[] args) {
String classPrefix = "com.yy.test.reflection.HandlerStrategy";
String postfix = "One";
String className = classPrefix + postfix;
Class clazz;
try {
clazz = Class.forName(className);
IHandler handler = (IHandler) clazz.newInstance();
handler.handle();
} catch (Exception e) {
System.out.println("HandlerTest.main error:"+e);
}
}
}