目錄
問題:
舉例:
總結:核心就是利用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
}