委托模式

委托模式

介绍

非23中设计模式,面向对象设计模式中常用的一种模式。

干活时你的(被委托人),功劳是我的(委托人)

  • 参与人:委托与被委托

  • 委托人与被委托人在权力上平等(实现同一个接口)

  • 委托人持有被委托人的引用

  • 不关心过程只关心结果

生活举例:

开发小程序:现该公司需要开发一个”设计模式”的小程序,归小强(小强小强我最强)项目组开发。此时项目经理将该任务委托给小小强去开发。

接口:DevCode.java

1
2
3
4
5
6
7
8
9
10
11
12
package org.springframework.tests.patterns;


/**
* 接口
* @author Administrator
*/
public interface DevCode {

//开发小程序
void devMiniApps();
}

项目经理小强

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package org.springframework.tests.patterns;


/**
* 项目经理小强
* @author Administrator
*/
public class XiaoQiang implements DevCode {
private final XiaoXiaoQiang qiang = new XiaoXiaoQiang();

@Override
public void devMiniApps() {
//开发小程序
this.qiang.devMiniApps();
}

}

小强项目组开发人员

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package org.springframework.tests.patterns;


/**
* 小小强开发人员
* @author Administrator
*/
public class XiaoXiaoQiang implements DevCode {

@Override
public void devMiniApps() {
System.out.println("我是苦逼的小小强.............");
System.out.println("分析需求.............");
System.out.println("搭建框架.............");
System.out.println("加班加班我最强.............");
System.out.println("测试万岁.............");
System.out.println("业务验收.............");
System.out.println("与产品经理打了一架,继续加班.............");
System.out.println("聪明如我开发完成.............");
}

}

测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package org.springframework.tests.patterns;


/**
*
* @author Administrator
*/
public class TestDev {

public static void main(String[] args) {
new XiaoQiang().devMiniApps();
}
}
===结果
我是苦逼的小小强.............
分析需求.............
搭建框架.............
加班加班我最强.............
测试万岁.............
业务验收.............
与产品经理打了一架,继续加班.............
聪明如我开发完成.............

为什么使用委托模式

解耦,委托解耦简单说就是把产生事件的代码和处理事件的代码通过委托者给隔离开来。

“委托变量(方法答名)可以作为函数参数的形式传入到一个函数中”,只要增加一个新的处理方法就可。委托带来的程序扩展性的提升。

在spring中用委托模式进行解耦,来进行达到了灵活的使用。

应用场景

实现了松耦

本文标题:委托模式

文章作者:wsylp

发布时间:2020年06月07日 - 15:06

最后更新:2020年11月26日 - 20:11

原始链接:http://wsylp.github.io/2020/06/07/委托模式/

许可协议: 本文为 wsylp 版权所有 转载请保留原文链接及作者。

-------------本文结束感谢阅读-------------