Java策略模式+反射動態建立物件
阿新 • • 發佈:2019-01-25
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); } } }