一、委派模式的定义

委派模式(Delegate Pattern)
又叫委托模式. 它的基本作用就是负责任务的调度和任务的分配, 将任务的分配和执行分离开来. 可以看做是一种特殊情况下的静态代理的全权代理.

不属于GOF 23种设计模式之一.

属于行为型模式.

二、委派模式和代理模式的区别

  1. 委派模式是行为型模式, 代理模式是结构型模式.
  2. 委派模式注重的是任务派遣, 注重结果;

    代理模式注重的是代码增强, 注重过程.
  3. 委派模式是一种特殊的静态代理, 相当于全权代理.

三、SpringMVC中的委派模式

MVC

从图中可以看出dispatcherServlet更像是一个分发任务的分发者, 但其实springmvc本身就是一个大的委派.

  1. web浏览器发送请求给dispatchServlet
  2. dispatchServlet委派HandlerMapping去找到url所对应的方法。
  3. 通过HandlerMapping找到的方法dispatcherServlet委派处理器适配器去调用方法返回ModelAndView
  4. 紧接着委派视图解析器去渲染modelAndView
  5. 最终返回给web浏览器。

从上述流程可以看出,dispatcherServlet委派的对象不是同一类对象,而是三个大的类,HandlerMap,处理器,视图解析器。

四、总结

委派模式是一种设计思想,它想表达的是,尽量将工作分发给专门的对象去做

优点

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

缺点

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

最后修改:2022 年 06 月 23 日
如果觉得我的文章对你有用,请点个赞吧~