设计模式系列--委派模式

Posted TC 谈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式系列--委派模式相关的知识,希望对你有一定的参考价值。

定义

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

实现方式

一般在公司,老板有什么想法,首先是和他手下的管理人员沟通,管理人员将老板的想法落实后,将任务拆解派发给下面的员工。

IEmployee 员工接口

 
   
   
 
  1. public interface IEmployee {


  2. void doThing(String command);

  3. }

EmployeeA 公司后台开发工程师

 
   
   
 
  1. public class EmployeeA implements IEmployee {


  2. @Override

  3. public void doThing(String command) {

  4. System.out.println("JAVA工程师,"+"进行"+command+"优化");

  5. }

  6. }

EmployeeB 公司前端开发工程师

 
   
   
 
  1. public class EmployeeB implements IEmployee {


  2. @Override

  3. public void doThing(String command) {

  4. System.out.println("H5工程师,"+"进行"+command+"优化");

  5. }

  6. }

Leader 直接负责人

 
   
   
 
  1. import java.util.HashMap;

  2. import java.util.Map;


  3. public class Leader {


  4. private Map<String, IEmployee> leadEmployees = new HashMap<>();


  5. public Leader() {

  6. leadEmployees.put("服务器", new EmployeeA());

  7. leadEmployees.put("界面", new EmployeeB());

  8. }


  9. public void command(String command) {

  10. leadEmployees.get(command).doThing(command);

  11. }

  12. }

Boss 老板

 
   
   
 
  1. public class Boss {


  2. private Leader leader;


  3. public Boss() {

  4. leader = new Leader();

  5. }


  6. public void command(String command) {

  7. leader.command(command);

  8. }

  9. }

Test测试

 
   
   
 
  1. public class Test {


  2. public static void main(String[] args) {

  3. Boss boss = new Boss();

  4. boss.command("服务器");

  5. }

  6. }


委派模式在Spring 中使用也很多,如BeanDefinitionParserDelegate 和 Dispatchservlet等等


以上是关于设计模式系列--委派模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式 | 挑战委派模式

揭秘设计模式之委派模式

java 设计模式 --委派模式

设计模式之委派模式,大名鼎鼎的Spring都在用

委派模式精讲

jvm 双亲委派模式