javaalready

委派模式的使用

2022-06-23  本文已影响0人  文景大大

一、模式介绍

委派模式负责任务的分配和调用,是一种特殊的静态代理模式,可以理解为全权代理模式,代理模式注重过程,委派模式注重结果。

在现实工作中,我们员工分为设计师、程序员、运维人员等等,大家负责不同种类的工作,对于公司领导来说,想要弄清楚所有人的工作种类和下达具体的工作任务是非常繁琐的,这将会导致领导和员工的强耦合,因此,我们需要将所有员工划分为不同的团队,每个团队设置一个项目经理,由项目经理来替领导管理员工和指派具体工作。

public interface IEmployee {
    void doTask(String task);
}
@Slf4j
public class Designer implements IEmployee{
    @Override
    public void doTask(String task) {
        log.info("执行{}任务", task);
    }
}
@Slf4j
public class Coder implements IEmployee{
    @Override
    public void doTask(String task) {
        log.info("执行{}任务", task);
    }
}
@Slf4j
public class Manager implements IEmployee{
    private Map<String,IEmployee> employeeMap = new HashMap<>();

    /**
     * 项目经理管理每个员工的工作类别
     */
    public Manager() {
        employeeMap.put("design", new Designer());
        employeeMap.put("code", new Coder());
    }

    @Override
    public void doTask(String task) {
        if(!employeeMap.containsKey(task)){
            log.error("无法完成该类型任务!");
            return;
        }
        employeeMap.get(task).doTask(task);
    }
}
public class Main {
    public static void main(String[] args) {
        Manager jack = new Manager();
        jack.doTask("design");
        jack.doTask("code");
    }
}

二、使用案例

可以看到,委派模式比较简单,和静态代理模式极其相似,在框架中也多有使用场景:

三、模式总结

3.1 优点

3.2 缺点

上一篇 下一篇

猜你喜欢

热点阅读