通過追女孩子案例模擬Thread類、Runnable介面、自定義執行緒類之間的關係
阿新 • • 發佈:2018-12-29
我們知道,在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(); } }