Java设计模式(十四)委派模式

委派模式

定义

又叫委托模式,是一种面型对象的设计模式,允许对象组合实现与继承相同的代码重用。它的基本作用就是负责任务的调用和分配任务,是一种特殊的静态代理,可以理解我全权代理,但是代码模式注重过程,而委派模式注重结果。属于行为型模式。

角色
  1. 抽象任务角色(Task):定义一个接口,它有若干实现类。
  2. 委派角色(Delegate):负责在各个具体角色实例之间做出决策,屏判断调用具体实现的方法。
  3. 具体任务角色(Concrete)真正执行任务的角色
应用实例

BOSS给Leader下达任务,leader会根据实际情况给每一个员工派发工作任务,待员工把任务完成后,再有Leader汇报工作任务

public interface IEmployee {
    void doing(String task);
}

public class EmployeeA implements IEmployee{
    protected String goodAt = "编程";

    @Override
    public void doing(String task) {
        System.out.println(String.format("我是员工A,我擅长 %s ,现在开始做 %s 工作",goodAt, task));
    }
}

public class Leader  implements IEmployee{

    private final Map<String, IEmployee> employeeMap = new HashMap<String, IEmployee>();
    public Leader() {
        employeeMap.put("爬虫", new EmployeeA());
        employeeMap.put("海报", new EmployeeB());
    }

    @Override
    public void doing(String task) {
        if (!employeeMap.containsKey(task)) {
            System.out.println(String.format("这个任务:%s 超出我的能力范围", task));
            return;
        }
        employeeMap.get(task).doing(task);
    }
}

public class Boss {

    public void command(String task, Leader leader){
        leader.doing(task);
    }
}
public class test {
    public static void main(String[] args) {
        new Boss().command("海报",new Leader());
    }
}
委派模式在源码中的使用

JVM的双亲委派模型

优点

通过任务委派能够将一个大型任务细化,然后通过统一管理这些子任务的完成情况实现任务的跟进,能够加快任务执行的效率

缺点

任务委派方式需要根据任务的复杂程度进行不同的改变,在任务比较复杂的情况下可能需要进行多重委派容易造成紊乱。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值