1. 程式人生 > >通過追女孩子案例模擬Thread類、Runnable介面、自定義執行緒類之間的關係

通過追女孩子案例模擬Thread類、Runnable介面、自定義執行緒類之間的關係

我們知道,在Thread類、Runnable介面、自定義執行緒類之間實現了靜態代理的設計模式,以下進行簡單的模擬,方便我們對執行緒和靜態代理的一個更加具象的認識。

被人追介面beiRenZhui(Runnable):

/*
 * 本介面是被人追介面,每一個女孩子都有被人追的特性,
 * 所以都要實現這個介面
 * 本介面就相當於Runnable介面
 */
public interface beiRenZhui {
	void maihua();
	void maizuanjie();
}

媒婆類(Thread)

/*
 * 媒婆要幫助男生追女孩子,就必須瞭解女孩子,
 * 所以媒婆類MeiPo也要具有被人追特性,實現被人追介面
 * 本類相當於Thread類,充當代理作用
 * 
 * MeiPo類實現Runnable介面,相當於Thread類實現Runnable介面
 */
public class MeiPo implements beiRenZhui {
	/*
	 * 這局程式碼相當於Thread類原始碼中的
	 * private Runnable target;
	 */
	private beiRenZhui brz;
	/*
	 * 這句程式碼相當於Thread類原始碼中的
	 * public Thread(Runnable target) {
     *  init(null, target, "Thread-" + nextThreadNum(), 0);
     *}
	 */
	public MeiPo(beiRenZhui brz) {
		this.brz=brz;
	}

	@Override
	public void maihua() {
		brz.maihua();

	}

	@Override
	public void maizuanjie() {
		brz.maizuanjie();
	}

}

女孩子類Zhao(自定義執行緒類):

/*
 * 本類是被追的女孩子的類,女孩子都有被人追的屬性
 * 相當於自定義的執行緒類,都要實現Runnable介面
 */
public class Zhao implements beiRenZhui {

	@Override
	public void maihua() {
		System.out.println("我喜歡藍色妖姬!");
		
	}

	@Override
	public void maizuanjie() {
		System.out.println("我喜歡I。。。。do");
		
	}

}

追女孩子的男生類Yang(測試類):

/*
 * 追女孩子的男生類
 */
public class Yang {
	public static void main(String[] args) {
		/*
		 * 例項化一個MeiPo物件,與例項化一個Thread物件相對應。
		 * 構造器中傳入要追的女孩子的例項,相當於在Thread的構造器中傳入
		 * 一個自定義的執行緒類物件
		 */
		MeiPo mp=new MeiPo(new Zhao());
		/*
		 * 表面上給媒婆買花買鑽戒,實際上給要追的女孩子買花買鑽戒
		 */
		mp.maihua();
		mp.maizuanjie();
	}
	
}