委派模式(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做了這項工作