设计模式之☞委派模式,通俗易懂,一学就会!!!
导读#
在spring中委派模式用的比较多,在常用的23种设计模式中其实是没有委派模式的影子的。
在spring中体现:Spring MVC框架中的DispatcherServlet其实就用到了委派模式。
委派模式的作用:基本作用就是负责任务的调用和分配,跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。
Example#
利用一张图简述委派模式,下图简单说明了老板把任务给了项目经理,而项目经理将任务拆分,分给一个个it攻城狮,自己没有做工作,而是把具体工作交给具体的执行者去做。
代码示例#
接口:IExcuter.java#
public interface IExcuter { void excute(String command); }
攻城狮A:ExcuterA.java#
public class ExcuterA implements IExcuter{ @Override public void excute(String command) { System.out.println("员工A 开始做"+command+"的工作"); } }
攻城狮B:ExcuterB.java#
public class ExcuterB implements IExcuter{ @Override public void excute(String command) { System.out.println("员工B 开始做"+command+"的工作"); } }
项目经理(委派者):Leader.java#
public class Leader implements IExcuter { private Map<String,IExcuter> targets = new HashMap<String,IExcuter>(); public Leader() { targets.put("加密",new ExcuterA()); targets.put("登录",new ExcuterB()); } @Override public void excute(String command) { targets.get(command).excute(command); } }
老板:Boss.java#
public class Boss { public static void main(String[] args) { Leader leader = new Leader(); //看上去好像是我们的项目经理在干活 //但实际干活的人是普通员工 //这就是典型,干活是我的,功劳是你的 leader.excute("登录"); leader.excute("加密"); } }
实现#
参考:https://www.jianshu.com/p/38acf37b1e1f
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?