天天看點

Java設計模式-委派模式

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

繼續閱讀