委派模式(Delegate)实现层面上, 定义一个抽象接口, 它有若干实现类, 他们真正执行业务方法, 这些子类是具体任务角色; 定义委派者角色也实现该接口, 但它负责在各个具体角色实例之间做出决策, 由它判断并调用具体实现的方法.。委派模式可以根据的任务熟悉选择不同的方式实现。
首先定义一个接口
public interface Worker {
void doWork();
}
定义两个工人实现接口
public class WorkerLi implements Worker {
@Override
public void doWork() {
System.out.println("Li做了这项工作");
}
}
public class WorkerWang implements Worker {
@Override
public void doWork() {
System.out.println("wang做了这项工作");
}
}
定义一个工长用于分配任务
public class WorkerLeader implements Worker {
@Override
public void doWork() {
Worker worker = null;
//分配任务
if (Math.random() < 0.5) {
worker = new WorkerLi();
} else {
worker = new WorkerWang();
}
worker.doWork();
}
}
调用工长直接下达任务
public class DemoTest {
public static void main(String[] args) {
WorkerLeader WorkerLeader = new WorkerLeader();
int i = 0;
while (i++ < 10) {
WorkerLeader.doWork();
}
}
}
结果
Li做了这项工作
Li做了这项工作
wang做了这项工作
wang做了这项工作
Li做了这项工作
wang做了这项工作
Li做了这项工作
Li做了这项工作
wang做了这项工作
wang做了这项工作