设计模式之委派模式

委派模式用于任务的调度和分配,通过高层领导将任务委派给部门经理,再由经理分配给员工执行。它能细化任务,统一管理进度,提高效率。在Spring中有所应用,但不属于GOF的23种设计模式。代码示例展示了如何在Java中实现。委派模式与静态代理模式的区别在于,前者关注任务分发,后者关注过程增强。如JDK的类加载器和SpringMVC的DispatcherServlet都运用了委派模式。
摘要由CSDN通过智能技术生成

委派模式的基本作用是负责任务的调度和分配任务。

委派模式 在现实生活中也有相关的体现,比如一个具体任务的执行,首先是经过高层领导讨论,将具体的任务委派给相关部门经理,部门经理拿到任务通知后去委派相关的员工具体执行任务,委派任务的角色实际并非具体执行任务,而是对任务分发,执行过程进行管理。

委派模式能够将一个大型的任务细化,统一管理任务的完成情况,并实现任务的跟进,能够加快任务执行的效率。
委派模式 是一种行为型模式。 在Spring 中应用挺多的,但是不属于(GOF)23种设计模式。

代码示例:

public interface IEmploy {
    void doTask(String taskName);
}
public class EmployA implements IEmploy {

    public void doTask(String taskName) {
        System.out.println("员工A在做任务" + taskName);
    }
}
public class EmployB implements IEmploy {

    public void doTask(String taskName) {
        System.out.println("员工A在做任务" + taskName);
    }
}

领导委派分发任务

public class Leader implements IEmploy {
    private static Map<String, IEmploy> taskMap = new HashMap<String, IEmploy>();

    static{
        taskMap.put("编程", new EmployA());
        taskMap.put("平面设计", new EmployB());
    }
    public void doTask(String taskName) {
       if(taskMap.containsKey(taskName)){
           taskMap.get(taskName).doTask(taskName);
       }else{
           System.out.println("当前任务不支持!");
       }
    }
}

老板发送指令,布置任务

public class Boss {
    private IEmploy employ;

    public Boss(IEmploy employ) {
        this.employ = employ;
    }

    void sendCommand(String task){
        employ.doTask(task);
    }
}
public class Test {
    public static void main(String[] args) {
        Boss b = new Boss(new Leader());
        b.sendCommand("平面设计");
    }
}

优缺点:
1。对外隐藏调用,简化使用
2.业务扩展之后,派发命令的类也需要做调整,不符合开闭原则

委派模式和静态代理模式有什么区别?
委派模式注重的是结果,代理模式注重的是过程。一个是任务分发,一个是工程增强

应用实例:
1.jdk的双亲委派机制ClassLoader。源码中ClassLoader有一个loadClass方法,这个判断当前这个类加载器有没有父类加载器,如果用,递归调用父类的类加载器来加载,如果没有,自己去加载,这样可以防止内存中有多份相同的字节码。

2.Springmvc中的DispathcherServlet中diapatch()方法,进行任务的分发。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值