委派模式

Updated on in 程序人生 with 0 views and 0 comments

1、简介

委派模式对外隐藏具体实现细节,将任务委派给具体的实现类,spring mvc的DispatcherServlet就是使用了委派模式,根据不同的路径,来调用具体对应的HandlerAdapter。

例如,一个部门由部门经理,程序员和设计师三个角色,程序员和设计师负责具体的工作,部门经理根据不同的任务来选择程序员或者设计师来执行。

2、建立任务执行者

public interface User {
    public void work();
}

public class Programmer implements User {
    @Override
    public void work() {
        System.out.println("java工程师开始工作");
    }
}
public class Designer implements User {
    @Override
    public void work() {
        System.out.println("架构设计师开始工作");
    }
}

3、建立任务分发者

public class DepartmentManager {
    private Map<String,User> employees = new HashMap<>();
    public DepartmentManager(){
        employees.put("编程",new Programmer());
        employees.put("设计",new Designer());
    }

    public void work(String cmd){
        employees.get(cmd).work();
    }
}

4、测试

public class TestDelegate {
    public static void main(String[] args){
        DepartmentManager departmentManager = new DepartmentManager();
        departmentManager.work("设计");
        departmentManager.work("编程");
    }
}

标题:委派模式
作者:wenyl
地址:http://www.wenyoulong.com/articles/2020/12/24/1608791811277.html