代理模式+策略模式,典型 Spring 中的 DispatcherServlet
用户将任务全权委派给代理负责,代理负责根据策略任务调度具体的执行单元
执行单元
/**
* 执行单元实现的接口
*/
public interface ITarget {
void doSomething(String command);
}
/**
* 执行单元A
*/
public class TargetA implements ITarget {
@Override
public void doSomething(String command) {
}
}
/**
* 执行单元B
*/
public class TargetB implements ITarget {
@Override
public void doSomething(String command) {
}
}
执行单元调度者
public class Manager {
private Map<String ,ITarget> targets = new HashMap<String ,ITarget>();
public Manager(){
targets.put("commandA",new TargetA());
targets.put("commandB",new TargetB());
}
public void dispatch(String command){
targets.get(command).doSomething(command);
}
}
使用者
public class Boss {
public static void main(String[] args) {
Manager manager = new Manager();
manager.dispatch("Command1");
}
}