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

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

目录

问题:

举例:

总结:核心就是利用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中的多态来完成注入。

相关文章:

  • 《操作系统 - 清华大学》 9 -1:进程调度:背景
  • 高频面试题(含笔试高频算法整理)基本总结回顾3
  • 零知识证明与 ZK Rollups 详解
  • 基于单片机的智能宿舍管理系统(论文+源码)
  • 如何让vllm使用modelscope而不是huggingface来下载模型?
  • C#光速入门的指南
  • XXL-JOB深度解析:新一代分布式任务调度解决方案
  • 分布式架构篇——分库分表与数据一致性保障
  • Educational Codeforces Round 175 (Rated for Div. 2)
  • KTV点歌系统
  • Windows逆向工程入门之MASM浮点数存储机制
  • 小米 SU7 Ultra:科技与性能的极致融合,FPC 隐匿的关键力量【新立电子】
  • 华为hcia——Datacom实验指南——STP工作基本原理及STP/RSTP基本功能配置
  • Python虚拟环境使用指南
  • Http、tcp、https、socket、tomcat、长短连接等总结回顾
  • SpringBoot AI + PgVector向量库 + Openai Embedding模型
  • JAVA安全—手搓内存马
  • JVM--虚拟机
  • 【大模型】什么是蒸馏版大模型
  • 量子计算如何提升机器学习效率:从理论到实践
  • 柳州网站开发/什么是seo关键词
  • 西安建设工程中心交易网站/网络营销整合推广
  • 网站建设的商业计划书/知识营销
  • 红色 网站配色/菏泽地网站seo
  • wordpress阿里秀模板/搜狗排名优化工具
  • 衡水哪个公司做网站好/合肥网站推广优化公司