Java線程創建靜態代理模式代碼實例
一、背景
在通過Runnable接口創建線程時,啟動線程需要借助Thread類,這里就涉及到了靜態代理模式。
二、實例
以歌手演出為例,在演出的這個過程中,歌手與他的助理他們有一個共同的目標'完成這場演出'。
為啥需要歌手需要有助理呢?
因為舉辦好一場演出有很多繁瑣的事情要做,為了讓歌手專心完成'唱歌'這件事,助理就需要在背后幫助歌手做很多事情。
1.助理負責幫助歌手做一些輔助工作,例如幫忙宣傳、幫忙計劃行程、幫忙訂機票等等。
2.歌手負責唱歌這件事情。
三、實例的代碼體現
1.公共的接口show
歌手與助理為了完成演出,都需要為這場演出做一些事情。
2.歌手類Singer實現Show接口
歌手要做的事情主要就是唱歌
3.助理類AssistantManager實現Show接口
助理要幫助歌手做一些輔助的工作
這樣寫助理和歌手好像并沒有聯系起來,我們只知道助理和歌手都為了同一場演出做了一些事情。
那這個助理究竟是服務哪一位歌手呢?
A.我們為助理類設置了一個成員變量'歌手'
B.為助理類創建了相應的構造方法
(經過以上兩步,助理類在創建時就自帶了一個相應的'歌手')
C.在演出所做的事情中,讓助理對應的歌手完成'唱歌'這件事。
在創建助理類對象時設置相應的對象,借助助理類對象,就可以完成'演出'這整個過程。
運行代碼:
四、總結
1.Java中的Thread類實現了Runable接口
即Thread類相當于上文中的'助理'
2.我們寫的類也是實現了Runnable接口
即我們寫的類相當于上文中的'歌手'
3.在實現了Runnable接口后通過代理類Thread對象完成線程的啟動
A.在代理類Thread對象的創建中,聲明了我們所寫的實際對象,eg:'myRunnable'。
B.然后由Thread類協助我們完成這一系列的操作。
C.看似簡單的start()背后,代理類Thread還幫助我們做了很多事。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: