天天氣非常好,下著淅淅瀝瀝的小雨,刮著風(fēng),感覺(jué)甚好;我在北京向各位問(wèn)好。這幾天公司基本沒(méi)什么事兒,從昨天開始就復(fù)習(xí)了一下多線程編程,今天給各位分享一種Java23種設(shè)計(jì)模式中最常見的設(shè)計(jì)模式--策略模式。為什么將策略模式和多線程綁在一起呢,不知道各位有沒(méi)有注意過(guò)我們?cè)谶M(jìn)行多線程編程的時(shí)候,創(chuàng)建線程的方式有2種,一種是繼承Thread類,另外一種就是實(shí)現(xiàn)Runnable接口;當(dāng)然,我們會(huì)毫不保留的選擇第二種,因?yàn)閿U(kuò)展性強(qiáng),習(xí)慣接口開發(fā)等等原因,但是第二種方式還潛藏了23種Java設(shè)計(jì)模式中的其中一個(gè)模式,那就是低調(diào)而又強(qiáng)勢(shì)的"策略模式"。
說(shuō)說(shuō)策略模式吧,這種模式的設(shè)計(jì)思想就是:為了考慮業(yè)務(wù)邏輯的千變?nèi)f化和復(fù)雜程度是不一定的,因此我們需要對(duì)這套程序進(jìn)行高度的抽象,這樣才能將業(yè)務(wù)邏輯和抽象進(jìn)行相分離,才能夠讓這套程序的可擴(kuò)展性變的極強(qiáng),這也是在開發(fā)中會(huì)使用策略模式的強(qiáng)大之處。好了讀到這兒,我相信從來(lái)沒(méi)有接觸過(guò)這種設(shè)計(jì)模式的讀者來(lái)說(shuō),還是一頭霧水,接下來(lái)我就開始通過(guò)多線程來(lái)請(qǐng)出我們的"策略模式"。
先看代碼再解釋:
1 public static void main(String[] args) { 2 //創(chuàng)建線程一: 3 new Thread(new Runnable() { 4 @Override 5 public void run() { 6 int i=100; 7 &nbs