Java線程創(chuàng)建靜態(tài)代理模式代碼實例
一、背景
在通過Runnable接口創(chuàng)建線程時,啟動線程需要借助Thread類,這里就涉及到了靜態(tài)代理模式。
二、實例
以歌手演出為例,在演出的這個過程中,歌手與他的助理他們有一個共同的目標"完成這場演出"。
為啥需要歌手需要有助理呢?
因為舉辦好一場演出有很多繁瑣的事情要做,為了讓歌手專心完成"唱歌"這件事,助理就需要在背后幫助歌手做很多事情。
1.助理負責幫助歌手做一些輔助工作,例如幫忙宣傳、幫忙計劃行程、幫忙訂機票等等。
2.歌手負責唱歌這件事情。
三、實例的代碼體現(xiàn)
1.公共的接口show
歌手與助理為了完成演出,都需要為這場演出做一些事情。
2.歌手類Singer實現(xiàn)Show接口
歌手要做的事情主要就是唱歌
3.助理類AssistantManager實現(xiàn)Show接口
助理要幫助歌手做一些輔助的工作
這樣寫助理和歌手好像并沒有聯(lián)系起來,我們只知道助理和歌手都為了同一場演出做了一些事情。
那這個助理究竟是服務哪一位歌手呢?
A.我們?yōu)橹眍愒O置了一個成員變量"歌手"
B.為助理類創(chuàng)建了相應的構造方法
(經(jīng)過以上兩步,助理類在創(chuàng)建時就自帶了一個相應的"歌手")
C.在演出所做的事情中,讓助理對應的歌手完成"唱歌"這件事。
在創(chuàng)建助理類對象時設置相應的對象,借助助理類對象,就可以完成"演出"這整個過程。
運行代碼:
四、總結
1.Java中的Thread類實現(xiàn)了Runable接口
即Thread類相當于上文中的"助理"
2.我們寫的類也是實現(xiàn)了Runnable接口
即我們寫的類相當于上文中的"歌手"
3.在實現(xiàn)了Runnable接口后通過代理類Thread對象完成線程的啟動
A.在代理類Thread對象的創(chuàng)建中,聲明了我們所寫的實際對象,eg:"myRunnable"。
B.然后由Thread類協(xié)助我們完成這一系列的操作。
C.看似簡單的start()背后,代理類Thread還幫助我們做了很多事。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java通過PowerMockito和Mokito進行單元測試的實現(xiàn)
PowerMockito和Mockito都是Java語言中的測試框架,用于進行單元測試和集成測試,本文就來詳細的介紹一下通過PowerMockito和Mokito進行單元測試,感興趣的可以了解一下2023-08-08SpringBoot封裝自己的Starter的實現(xiàn)方法
這篇文章主要介紹了SpringBoot封裝自己的Starter的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04SpringSecurityOAuth2 如何自定義token信息
這篇文章主要介紹了SpringSecurityOAuth2 自定義token信息的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息(推
這篇文章主要介紹了spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息的相關資料,需要的朋友可以參考下2018-01-01idea沒有services窗口、沒有springboot啟動項問題
這篇文章主要介紹了idea沒有services窗口、沒有springboot啟動項問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05