委托模式

2025/04/04

一、背景

二、原理

组成角色

  1. 委托者: 接受请求,派发任务
  2. 委托接口: 定义实现方法
  3. 具体委托对象:实际执行任务

我突然发现回调和委托逻辑很像。 回调是委托模式的一种应用场景。

三、和其他模式的区别

委派和代理及装饰者模式不同 委派仅仅是将方法的执行工作移交给另一个对象

代理可能在此做额外的处理 装饰者会在方法执行前后做增强。

四、例子

public interface TaskHandler {
    void handleTask();
}

public class Delegator {
    private TaskHandler taskHandler;

    public void setTaskHandler(TaskHandler taskHandler) {
        this.taskHandler = taskHandler;
    }

    public void executeTask() {
        if (taskHandler != null) {
            taskHandler.handleTask();
        }
    }
}

public class Delegator {
    private TaskHandler taskHandler;

    public void setTaskHandler(TaskHandler taskHandler) {
        this.taskHandler = taskHandler;
    }

    public void executeTask() {
        if (taskHandler != null) {
            taskHandler.handleTask();
        }
    }
}

public class DelegateTest {
    public static void main(String[] args) {
        Delegator delegator = new Delegator();
        delegator.setTaskHandler(new ConcreteHandler());
        delegator.executeTask();
    }
}