当前位置: 首页 > article >正文

委托者模式(掌握设计模式的核心之一)

目录

问题:

举例:

总结:核心就是利用Java中的多态来完成注入。


问题:

今天刷面经,刷到装饰者模式,又进阶的发现委托者模式,发现还是不理解,特此记录。

举例:

  • 老板​(委托者):
    “我有个需求要做,但具体咋做我不关心,你(被委托者)按我的规则(接口)搞定就行。”
    → 只提要求,不亲自干活。

  • 员工​(被委托者):
    “老板放心,我按你定的规则(接口)来办!”
    → 遵守接口承诺,实现具体逻辑。

  • 协商的规则​(接口):
    “需求必须通过PPT提交,且周五前完成。”
    → 接口定义了方法名、参数、返回值等规范。

// 1. 协商规则:接口(合同)
interface TaskRule {
    void doTask(String taskName); // 方法名、参数固定
}

// 2. 老板:委托者
class Boss {
    private TaskRule employee; // 绑定一个员工
    
    //构造函数注入也可以
    //pulic void Boss(TaskRule employee){
    // this.employee = employee;    
    
    //}

    //set注入
    public void setEmployee(TaskRule employee) {
        this.employee = employee;
    }

    public void assignTask(String taskName) {
        if (employee != null) {
            employee.doTask(taskName); // 按合同派活
        }
    }
}

// 3. 员工:被委托者
class Employee implements TaskRule {
    @Override
    public void doTask(String taskName) {
        System.out.println("打工人正在处理:" + taskName);
    }
}

// 4. 使用
public static void main(String[] args) {
    Boss boss = new Boss();
    boss.setEmployee(new Employee());
    boss.assignTask("写一份PPT"); // 输出:打工人正在处理:写一份PPT
}

总结:
核心就是利用Java中的多态来完成注入。


http://www.kler.cn/a/568620.html

相关文章:

  • 华为手机自助维修的方法
  • Memcached监控本机内存(比redis速度更快)
  • C++编程指南21 - 线程detach后其注意变量的生命周期
  • leetcode第77题组合
  • next.js-学习4
  • 蓝桥杯 6.数学
  • 基于springboot+vue的线上考试系统的设计与实现
  • 在 Ubuntu 下通过 Docker 部署 Caddy 和 PHP-FPM 服务器
  • Java—锁—等待唤醒机制
  • 随机树算法 自动驾驶汽车的路径规划 静态障碍物(Matlab)
  • thinkphp6-使用psubscribe进行redis的注意callback中使用redis
  • 《Python实战进阶》No 11:微服务架构设计与 Python 实现
  • 字符串的最大公因子<枚举>
  • C语言学习笔记-初阶(23)函数详解
  • QT——c++界面编程库
  • app项目管理, 应该以UI为导向还是以研发为导向
  • 细说 Java 集合之 Map
  • 千峰React:组件与逻辑封装(上)
  • 2025国家护网HVV高频面试题总结来了01(题目+回答)
  • Django模型管理器/QuerySet 常见的方法