当前位置: 首页 > 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 {@Overridepublic 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中的多态来完成注入。

相关文章:

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

目录 问题: 举例: 总结:核心就是利用Java中的多态来完成注入。 问题: 今天刷面经,刷到装饰者模式,又进阶的发现委托者模式,发现还是不理解,特此记录。 举例: ​老板​…...

DeepSeek-R1 论文笔记:通过强化学习提升大语言模型的推理能力

论文标题:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 作者团队:DeepSeek-AI 发表时间:2025 前置知识 & 术语 模型蒸馏 语言模型蒸馏的目标是将大型教师模型的知识(如语义理解、上…...

实现Unity shader扭曲效果

实现思路 1、扭曲材质赋于面片 2、抓取当前一帧的图片内容 3、获取屏幕坐标 4、利用屏幕坐标对抓取的图片采样 5、再采样张扰动贴图做扭曲 Shader "Unlit/NewUnlitShader" {Properties {_DistortTex ("扰动贴图 (RGB)", 2D) "bump" {}_Di…...

七星棋牌 6 端 200 子游戏全开源修复版源码(乐豆 + 防沉迷 + 比赛场 + 控制)

七星棋牌源码 是一款运营级的棋牌产品,覆盖 湖南、湖北、山西、江苏、贵州 等 6 大省区,支持 安卓、iOS 双端,并且 全开源。这个版本是 修复优化后的二开版本,新增了 乐豆系统、比赛场模式、防沉迷机制、AI 智能控制 等功能&#…...

C++STL---<limits>

C <limits> 头文件&#xff1a; <limits> 头文件是 C 标准库中用于获取各种数据类型的数值范围、精度等信息的工具。它通过模板类 std::numeric_limits 提供了对基本数据类型&#xff08;如 int、float、double 等&#xff09;的详细属性查询功能。通过 std::nume…...

一键安装Mysql部署脚本之Linux在线安装Mysql,脚本化自动化执行服务器部署(附执行脚本下载)

相关链接 一键安装Redis部署脚本之Linux在线安装Redis一键安装Mysql部署脚本之Linux在线安装Mysql一键安装JAVA部署脚本之Linux在线安装JDK一键安装Nginx部署脚本之Linux在线安装NginxNavicat最新版(17)详细安装教程Xshell客户端免费版无需注册XFtp客户端免费版无需注册 前言…...

ES、OAS、ERP、电子政务、企业信息化(高软35)

系列文章目录 ES、OAS、ERP、电子政务、企业信息化 文章目录 系列文章目录前言一、专家系统&#xff08;ES&#xff09;二、办公自动化系统&#xff08;OAS&#xff09;三、企业资源规划&#xff08;ERP&#xff09;四、典型信息系统架构模型1.政府信息化和电子政务2.企业信息…...

文生图开源模型发展史(2014-2025年)

文生图开源模型的发展历程是一段充满技术革新、社区生态繁荣与商业化竞争的多维度演进史。 一、技术萌芽期&#xff08;2014-2020年&#xff09; 核心突破 2014年&#xff1a;GAN&#xff08;生成对抗网络&#xff09;诞生&#xff0c;首次实现数据驱动式图像生成&#xff0…...

OA办公系统自动渗透测试过程

目录 一、下载环境源码 二、部署环境 三、测试 XSS漏洞 SQL注入 文件上传漏洞 一、下载环境源码 OA源码打包地址: https://download.csdn.net/download/weixin_43650289/90434502?spm=1001.2014.3001.5503 二、部署环境...

Python标准库【os】5 文件和目录操作2

文章目录 8 文件和目录操作8.7 浏览目录下的内容8.8 查看文件或目录的信息8.9 文件状态修改文件标志位文件权限文件所属用户和组其它 8.10 浏览Windows的驱动器、卷、挂载点8.11 系统配置信息 os模块提供了各种操作系统接口。包括环境变量、进程管理、进程调度、文件操作等方面…...

[代码规范]接口设计规范

一个优雅的接口要如何设计&#xff1f;有哪些设计规范可以遵循&#xff1f; 下面抛砖引玉&#xff0c;分享一些规范。 目录 1、RESTful API 设计最佳实践 2、Shneiderman 的 8 条黄金法则 3、Nielsen 的 10 条启发式规则 1、RESTful API 设计最佳实践 一共18条&#xff0c;参考…...

什么是最终一致性,它对后端系统的意义是什么

最终一致性(Eventual Consistency)是分布式系统中的一种一致性模型。与传统的强一致性模型不同,最终一致性并不要求系统在任何时刻都保持一致,而是保证在足够的时间后,所有节点的数据最终会达到一致的状态。换句话说,系统允许短时间内出现数据的不一致性,但最终会通过某…...

Unity学习笔记之——ugui的性能优化

在Unity中UI优化的核心问题就是重绘和批处理之间的平衡 一、Canvas优化要点 1.优化原因&#xff1a; &#xff08;1&#xff09;Unity为了性能优化&#xff0c;会合并Canvas下的所有元素&#xff1b; &#xff08;2&#xff09;如果把所有面板放到一个Canvas下&#xff0c;会…...

Python接口自动化中操作Excel文件的技术方法

在Python接口自动化测试中&#xff0c;操作Excel文件是一项常见且关键的技术需求。Excel作为数据存储和数据分析的重要工具&#xff0c;在自动化测试中通常用于存储测试用例、测试数据以及测试结果。通过Python操作Excel&#xff0c;可以大大提高测试的效率和灵活性。以下是一些…...

[Windows] 免费电脑控制手机软件 极限投屏_正式版_3.0.1 (QtScrcpy作者开发)

[Windows] 极限投屏_正式版 链接&#xff1a;https://pan.xunlei.com/s/VOKJf8Z1u5z-cHcTsRpSd89tA1?pwdu5ub# 新增功能(Future)&#xff1a; 支持安卓14(Supports Android 14)提高投屏成功率(Improve the success rate of mirror)加快投屏速度(Accelerate screen mirrorin…...

游戏引擎学习第131天

仓库:https://gitee.com/mrxiao_com/2d_game_3 运行游戏并识别我们的小问题 今天的工作重点是对游戏引擎进行架构优化&#xff0c;特别是针对渲染和多线程的部分。目前&#xff0c;我们的目标是让地面块在独立线程上进行渲染&#xff0c;以提高性能。在此过程中&#xff0c;我…...

Visual Studio Code集成MarsCode AI

Visual Studio Code集成MarsCode AI 1、搜索MarsCode AI 安装包 2、点击install安装即可 小编这里已经安装过了 3、登录自己的账号 点击链接&#xff0c;注册账号 https://www.marscode.cn/events/s/i5DRGqqo/ 4、登录后可以自己切换模型...

partner‘127.0.0.1:3200‘ not reached

在SAP虚拟机中&#xff0c;如果LRPSAP 0显示黄色&#xff0c;通常表示服务启动异常或存在配置问题。以下是一些可能的处理方法&#xff1a; 检查主机文件配置 确保主机文件&#xff08;hosts&#xff09;中已正确配置SAP服务的域名解析。例如&#xff0c;添加以下内容到hosts文…...

蓝桥备赛(六)- C/C++输入输出

一、OJ题目输入情况汇总 OJ&#xff08;online judge&#xff09; 接下来会有例题 &#xff0c; 根据一下题目 &#xff0c; 对这些情况进行分析 1.1 单组测试用例 单在 --> 程序运行一次 &#xff0c; 就处理一组 练习一&#xff1a;计算 (ab)/c 的值 B2009 计算 (ab)/c …...

Flume

Flume安装配置 使用的三台主机名称分别为bigdata1&#xff0c;bigdata2&#xff0c;bigdata3。所使用的安装包名称按自己的修改&#xff0c;安装包可去各大官网上下载 1.解压 将Master节点Flume安装包解压到/opt/module目录下 tar -zxvf /opt/software/apache-flume-1.9.0-bi…...

FanControl:重新定义Windows风扇控制,告别恼人噪音与散热烦恼

FanControl&#xff1a;重新定义Windows风扇控制&#xff0c;告别恼人噪音与散热烦恼 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/…...

Unity组件化通信三层次:事件、接口与消息总线实战

1. 这不是“写个脚本就完事”的游戏逻辑——为什么90%的Unity新手在交互设计上栽在第一步你有没有试过这样写&#xff1a;PlayerController里直接调用EnemyHealth.TakeDamage(10)&#xff0c;EnemyAI里又反过来调用PlayerStats.GetHealth()&#xff1f;代码跑通了&#xff0c;测…...

就业指导|中九非科班毕业,华为 OD 做 Java 后端想转 C++,能找到深度学习挂钩的岗工作吗?

这类题最容易让人一下把难度叠得太高。 因为你实际上不是只在做一次转向。 你想做的是三件事同时发生&#xff1a; 从 Java 后端转 C 还想和深度学习挂钩 最好岗位还能成立 问题就在这里。 这三个目标不是完全冲突。 但如果你把它理解成&#xff1a; “我直接转去做纯 …...

Barlow字体:54种样式打造专业级设计效果,提升你的视觉表达力

Barlow字体&#xff1a;54种样式打造专业级设计效果&#xff0c;提升你的视觉表达力 【免费下载链接】barlow Barlow: a straight-sided sans-serif superfamily 项目地址: https://gitcode.com/gh_mirrors/ba/barlow Barlow是一款源自加州公共视觉美学的专业字体家族&a…...

知识图谱与推荐系统实战

一、传统推荐系统的“天花板”协同过滤的困境你刷电商、看视频时&#xff0c;推荐系统总在猜你喜欢什么。最经典的协同过滤思路是“物以类聚、人以群分”&#xff1a;你买过A&#xff0c;那么买过A的人也常买B&#xff0c;于是把B推给你。这套方法简单有效&#xff0c;但也有硬…...

避坑指南:在Ubuntu 20.04上配置VNC远程桌面,为什么我推荐UltraVNC Viewer而不是TigerVNC?

Ubuntu 20.04远程桌面配置&#xff1a;为什么UltraVNC Viewer成为技术中坚的首选&#xff1f; 在Linux桌面环境远程管理的世界里&#xff0c;VNC协议就像一位历经沧桑的老兵&#xff0c;依然活跃在企业运维、远程开发和混合办公的第一线。Ubuntu 20.04 LTS作为长期支持版本&…...

AI驱动数字孪生:从静态镜像到自主决策的工业智能体

1. 项目概述&#xff1a;当物理世界有了“数字分身”&#xff0c;它就开始自己思考了我第一次在德国一家汽车厂的控制中心看到那个画面时&#xff0c;手里的咖啡差点洒出来——大屏幕上&#xff0c;整条总装线正以毫秒级延迟同步运转&#xff1a;机械臂的关节扭矩、焊点温度曲线…...

AI Coding 时代的工程策略革命:为什么 Monorepo 成了 AI 的“最佳拍档“?

AI Coding 时代的工程策略革命&#xff1a;为什么 Monorepo 成了 AI 的"最佳拍档"&#xff1f; 导读&#xff1a;当 AI 开始替你写代码&#xff0c;你的工程架构是否还在"拖后腿"&#xff1f;本文从 AI 的视角重新审视工程策略&#xff0c;深度解析为什么 …...

保姆级教程:用Ansys Zemax从零设计一个汽车HUD(附挡风玻璃反射优化技巧)

从零开始用Ansys Zemax设计汽车HUD&#xff1a;避坑指南与实战技巧 在汽车智能化浪潮中&#xff0c;抬头显示系统&#xff08;HUD&#xff09;正从高端车型的选配逐渐成为主流配置。对于光学工程师而言&#xff0c;掌握HUD设计能力已成为职业发展的关键技能。本文将带你从零开始…...

别再只算差异了!用Cytoscape给Hub Gene分析加个‘可视化Buff’(附脑网络实战图)

别再只算差异了&#xff01;用Cytoscape给Hub Gene分析加个‘可视化Buff’&#xff08;附脑网络实战图&#xff09; 在生物信息学分析中&#xff0c;差异基因筛选往往是研究的第一步&#xff0c;但如何从海量差异基因中找出真正具有生物学意义的"关键调控者"&#xf…...