设计模式-委派模式

代理模式+策略模式,典型 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");
}

}