设计模式之委派模式(delegate)
委派模式(delegate)
举例
类图:
以老板,经理,员工举例
员工:
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