public interface Behavior { void execute(); } public class BehaviorA implements Behavior { @Override public void execute() { } } public class BehaviorB implements Behavior { @Override public void execute() { } } <bean id="behavior" class="com.example.BehaviorA" /> public class Main { private Behavior behavior; public void setBehavior(Behavior behavior) { this.behavior = behavior; } public void doSomething() { behavior.execute(); } public static void main(String[] args) { Main main = new Main(); main.setBehavior(new BehaviorA()); main.doSomething(); try { String className = "com.example.BehaviorB"; Behavior behavior = (Behavior) Class.forName(className).newInstance(); main.setBehavior(behavior); main.doSomething(); } catch (Exception e) { e.printStackTrace(); } } }


上一篇:
下一篇:
切换中文