一、spring中委派模式

发布于:2021-09-18 14:46:16

委派模式(Delegate Patter)行为模式,代理模式注重过程,而委派模式注重结果。


在spring中的体现:Spring MVC框架中的DispatcherServlet其实就用到了委派模式。


委派模式的作用: 基本作用就是负责任务的调用和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果


日常中委派模式例子:?boss把任务给leader,而leader做了一个任务的分配和调度的工作,自己没有做工作,而是把具体工作交给具体的执行者去做。


spring 中以delegate 或dispatcher 结尾或包含都是委派模式,


eg:


1、com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet


2、org.springframework.beans.factory.xml.BeanDefinitionParserDelegate


public class DispatcherServlet extends HttpServlet {
private static final long serialVersionUID = 5766349180380479888L;
private static DispatcherServlet INSTANCE;
private static final Map handlers = new ConcurrentHashMap();

public static void addHttpHandler(int port, HttpHandler processor) {
handlers.put(port, processor);
}

public static void removeHttpHandler(int port) {
handlers.remove(port);
}

public static DispatcherServlet getInstance() {
return INSTANCE;
}

public DispatcherServlet() {
INSTANCE = this;
}

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpHandler handler = (HttpHandler)handlers.get(request.getLocalPort());
if (handler == null) {
response.sendError(404, "Service not found.");
} else {
handler.handle(request, response);
}

}
}

?


?


?


?


?

相关推荐