1、什么是委托?
委托,又叫委托模式是一种常用的设计模式,它可以让一个对象在不改变自己原有的行为的前提下,将某些特定的行为委托给另一个对象来实现。它通过将对象之间的关系分离,可以降低系统的耦合度,提高代码的复用性和可维护性。
其中有三个角色,约束、委托对象和被委托对象。
- 约束: 一般为接口也可以是抽象类,定义了某个行为。
- 被委托对象: 负责执行具体的行为。
- 委托对象: 负责将约束中定义的行为交给被委托对象。
2、Java中的委托
先来说一说委托在Java中的应用用一个简单的例子来说明:
老板
在创业初期时因为只有一个人而需要负责产品的客户端
、UI
、服务器
。 这个时候老板
负责的这些工作就可以被抽象出来形成一个约束接口:
public interface Work {
void app();
void ui();
void service();
}
复制代码
public class Boss implements Work {
@Override
public void app() {
System.out.println("Boss doing app");
}
@Override
public void ui() {
System.out.println("Boss doing ui");
}
@Override
public void service() {
System.out.println("Boss doing service");
}
}
复制代码
现在老板
每天都在做这几件事:
public class Main {
public static void main(String[] args) {
Boss boss = new Boss();
boss.app();
boss.ui();
boss.service();
}
}
复制代码
输出:
Boss doing app
Boss doing ui
Boss doing service
复制代码
运气不错,产品赚了不少钱,老板
花钱雇了一个员工
,将这些工作委托给他处理,自己直接脱产,只需要知道结果就可以了,于是就有了:
public class Employee implements Work{
@Override
public void app() {
System.out.println("Employee doing app");
}
@Override
public void ui() {
System.out.println("Employee doing ui");
}
@Override
public void service() {
System.out.println("Employee doing service");
}
}
复制代码
public class Boss implements Work{
private Employee employee;
public Boss