委派模式不是 GOF23 中的一员, 但是在 Spring 中经常用到该模式, 比如 Registry 等功能.
以现实生活中的老板委派员工干活来举例, 比如说政府要求企业改革, 老板将改革的任务发放给员工, 老板出钱员工出力, 但是功劳还是算在老板头上的, 没有人关心这一任务的过程, 只关心这个任务的结果, 这种模式就是委派模式.
Task.java
一个普通的任务接口.
- public interface Task {
- void doing();
- }
Boss.java
Boss 是一个委派任务的对象, 它将任务委派下去.
- public class Boss implements Task{
- private Task task;
- Boss(Task task){
- this.task = task;
- }
- @Override
- public void doing() {
- System.out.println("我是 BOSS, 我要开始委派人做任务拉, 我不管你做任务的过程 (是否加班), 我只要这个任务的结果");
- task.doing();
- }
- }
WorkerA.java
员工 A.
- public class WorkerA implements Task{
- @Override
- public void doing() {
- System.out.println("我是 work-A, 老板委派我做任务, 活其实是我干的, 但是功劳是老板的");
- }
- }
WorkerB.java
员工 B.
- public class WorkerB implements Task{
- @Override
- public void doing() {
- System.out.println("我是 work-B, 老板委派我做任务, 活其实是我干的, 功劳是老板的");
- }
- }
如果你喜欢我的文章, 那麻烦请关注我的公众号, 公众号重点分析架构师技术, 该公众号还处于初始阶段, 谢谢大家的支持.
关注公众号, 回复 java 架构获取架构视频资源 (后期还会分享不同的优质资源噢).
来源: https://juejin.im/post/5c7a0ffa51882540713f6259