委托者模式(掌握设计模式的核心之一)
目录
问题:
举例:
总结:核心就是利用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
}