Java線程創(chuàng)建靜態(tài)代理模式代碼實(shí)例
一、背景
在通過(guò)Runnable接口創(chuàng)建線程時(shí),啟動(dòng)線程需要借助Thread類,這里就涉及到了靜態(tài)代理模式。
二、實(shí)例
以歌手演出為例,在演出的這個(gè)過(guò)程中,歌手與他的助理他們有一個(gè)共同的目標(biāo)'完成這場(chǎng)演出'。
為啥需要歌手需要有助理呢?
因?yàn)榕e辦好一場(chǎng)演出有很多繁瑣的事情要做,為了讓歌手專心完成'唱歌'這件事,助理就需要在背后幫助歌手做很多事情。
1.助理負(fù)責(zé)幫助歌手做一些輔助工作,例如幫忙宣傳、幫忙計(jì)劃行程、幫忙訂機(jī)票等等。
2.歌手負(fù)責(zé)唱歌這件事情。
三、實(shí)例的代碼體現(xiàn)
1.公共的接口show
歌手與助理為了完成演出,都需要為這場(chǎng)演出做一些事情。
2.歌手類Singer實(shí)現(xiàn)Show接口
歌手要做的事情主要就是唱歌
3.助理類AssistantManager實(shí)現(xiàn)Show接口
助理要幫助歌手做一些輔助的工作
這樣寫(xiě)助理和歌手好像并沒(méi)有聯(lián)系起來(lái),我們只知道助理和歌手都為了同一場(chǎng)演出做了一些事情。
那這個(gè)助理究竟是服務(wù)哪一位歌手呢?
A.我們?yōu)橹眍愒O(shè)置了一個(gè)成員變量'歌手'
B.為助理類創(chuàng)建了相應(yīng)的構(gòu)造方法
(經(jīng)過(guò)以上兩步,助理類在創(chuàng)建時(shí)就自帶了一個(gè)相應(yīng)的'歌手')
C.在演出所做的事情中,讓助理對(duì)應(yīng)的歌手完成'唱歌'這件事。
在創(chuàng)建助理類對(duì)象時(shí)設(shè)置相應(yīng)的對(duì)象,借助助理類對(duì)象,就可以完成'演出'這整個(gè)過(guò)程。
運(yùn)行代碼:
四、總結(jié)
1.Java中的Thread類實(shí)現(xiàn)了Runable接口
即Thread類相當(dāng)于上文中的'助理'
2.我們寫(xiě)的類也是實(shí)現(xiàn)了Runnable接口
即我們寫(xiě)的類相當(dāng)于上文中的'歌手'
3.在實(shí)現(xiàn)了Runnable接口后通過(guò)代理類Thread對(duì)象完成線程的啟動(dòng)
A.在代理類Thread對(duì)象的創(chuàng)建中,聲明了我們所寫(xiě)的實(shí)際對(duì)象,eg:'myRunnable'。
B.然后由Thread類協(xié)助我們完成這一系列的操作。
C.看似簡(jiǎn)單的start()背后,代理類Thread還幫助我們做了很多事。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 每日六道java新手入門(mén)面試題,通往自由的道路第二天2. python b站視頻下載的五種版本3. 解決Java中的java.io.IOException: Broken pipe問(wèn)題4. 測(cè)試模式 - XSL教程 - 55. Python結(jié)合百度語(yǔ)音識(shí)別實(shí)現(xiàn)實(shí)時(shí)翻譯軟件的實(shí)現(xiàn)6. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(一)7. JAVA抽象類及接口使用方法解析8. 讓chatgpt將html中的圖片轉(zhuǎn)為base64方法示例9. python如何寫(xiě)個(gè)俄羅斯方塊10. 教你JS更簡(jiǎn)單的獲取表單中數(shù)據(jù)(formdata)
