0%

设计模式-委派模式

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

}