必威体育Betway必威体育官网
当前位置:首页 > IT技术

委派模式总结

时间:2019-10-06 17:13:13来源:IT技术作者:seo实验室小编阅读:50次「手机版」
 

委派

委派模式

在常用的23种设计模式中其实面没有委派模式(delegate)的影子,但是在Spring中委派模式确实用的比较多的一种模式,Spring MVC框架中的DispatcherServlet其实就用到了委派模式,有前辈将其总结为代理模式和策略模式的组合。下面通过一个简单的实例来总结委派模式

实际应用场景

如图中所示,一个比较实际的例子,就是老板将任务委派给项目经理,项目经理将任务细化,根据每个人擅长的某一方面将细化后的任务分给指定的员工,权衡的方式(策略)有多种,而这个任务项目经理不想干,就将其代理给了各个员工,从这个层面来看委派模式就是策略模式和代理模式的组合。相关类图如下:

其中委派者为Leader,在实现过程中需要维护所有被委派者(员工)的引用。具体各个类的实现代码如下:

Boss,老板指派任务给项目经理

public class Boss {
    public static void main(String[] args) {
//        new Leader().dispatch("加密");

        new Leader().dispatch("销售");
    }
}

普通职员接口 ITarget

public interface ITarget {

    public void doing(String command);

}

项目经理(委派者)

public class Leader {

    private Map<String ,ITarget> targets = new HashMap<String ,ITarget>();

    public Leader(){
        targets.put("加密",new TargetA());
        targets.put("销售",new TargetB());
    }

    public void dispatch(String command){
        targets.get(command).doing(command);
    }
}

两个普通职员类

public class TargetA implements ITarget{

    public void doing(String command) {
        System.out.println("开始进行加密算法的实现");
    }
}
public class TargetB implements ITarget{
    public void doing(String command) {
        System.out.println("开始开发销售代码");
    }
}

运行实例较为简单,这里不单独列出。

Spring MVC框架中的DispatcherServlet其实就是用到的委派模式,针对之前的MVC执行流程无法理解的handlerMAPPing其实就是这里的项目经理维护的各个员工的信息。上述实例中,为了简单,直接在构造函数中维护了相关实例的引用,但是在具体的HandlerMapping中,这一步显然要复杂的多,这个后期手动实现MVC框架的时候再进行深入探讨。

相关阅读

微信洗车预约系统 运用互联网+多种运营思维模式

微艾薇微洗车是一款集合上门洗车和到店洗车、加盟模式和自营模式为一体的本地O2O汽车美容模块,其运行的原理主要是用户通过微信客

啃食c++(简单设计模式)

简单工厂模式该设计模式是多态的一种应用实例,简单工厂模式是有一个生产对象决定生产那一产品,例如接下来的例子中,将friut作为父类,

未来商业模式格局和趋势竟然是这样的?

1、基本格局:“三个世界”,各显神通我们明确反对“三个世界”的替代论观点,这不符合现实,但是新世界的颠覆力量不可阻挡。电商10年,也

推进存量单体酒店整合,继 OYO 酒店之后「千屿Islands」

以保底换控价,共担风险,共享收益。图片来自 千屿今年 3 月 OYO 酒店全资收购了住宿品牌「千屿Islands」,在 OYO 跑通 2.0 模式后,近期

ART 虚拟机 — Interpreter 模式

前言 ART 虚拟机执行 Java 方法主要有两种模式:quick code 模式和 Interpreter 模式 quick code 模式:执行 arm 汇编指令 Interpret

分享到:

栏目导航

推荐阅读

热门阅读