设计模式之委派模式(delegate)

委派模式(delegate)

举例

类图:

20200422132357411_6616

以老板,经理,员工举例

员工:


public interface Emp {

    void job(String commend);
}

public class EmpA implements Emp{

    public void job(String commend){
        System.out.println("开始工作:"+commend);
    }
}

public class EmpB implements Emp{

    public void job(String commend){
        System.out.println("开始工作:"+commend);
    }
}

经理

public class Leader {

    Map<String,Emp> empMap = new HashMap<>();

    public Leader(){
        empMap.put("打扫",new EmpA());
        empMap.put("接待",new EmpB());
    }

    public void job(String commend){
        empMap.get(commend).job(commend);
    }
}

老板

public class Boss {

    public void doSomeThing(String commend ,Leader leader){
        leader.job(commend);
    }
}

main

public class Main {
    public static void main(String[] args) {
        new Boss().doSomeThing("打扫",new Leader());
    }
}

print : 开始工作:打扫
结果表明,实际上是经理委托给员工A去工作

总结

委派模式和静态代理模式很像,委派模式主要是注重结果.而代理模式更偏向于过程的代理
springmvc就属于委派模式实现


设计模式之委派模式(delegate)
https://www.blaaair.com/archives/she-ji-mo-shi-zhi-wei-pai-mo-shi-delegate
作者
Glo6f
发布于
2022年11月04日
许可协议