真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中如何實現(xiàn)策略模式

這篇文章給大家分享的是有關(guān)Java中如何實現(xiàn)策略模式的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計,秀峰網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:秀峰等地區(qū)。秀峰做網(wǎng)站價格咨詢:028-86922220

這里設(shè)計了一個有關(guān)足球的場景,在進攻當(dāng)中暫分為傳球和射門兩個動作。

最開始你可能會這樣想,設(shè)計一個抽象類(Attact),傳球和射門分別定義好,子類會有一些他們個性的東西。比如球員號碼,教練名稱等等。

后來你發(fā)現(xiàn)傳球和射門可能會分好多種,傳球可分為短傳和長傳,射門又分為巴蒂式射門和因扎吉式的搶點。這樣就不能將他們都寫在這個抽象類(Attact)中,比如有的隊員就是一個工兵型的(像AC米蘭的加圖索)他不停的搶斷傳球,很少參與到射門當(dāng)中來。這樣再定義若干個子類來繼承(Attact)就不能滿足需求。

我們可以把諸如傳球和射門等動作抽象出來。組合到該抽象類中,只需在其中調(diào)用具體的方法即可。

像這樣來定義:(其中Passable和Shootable為行為接口)

package strategy;   /**   * @author edison   * @date 2009-9-24   */ public abstract class Attact {   Passable pass;   Shootable shoot;      public abstract void display();      public void ownPass(){    pass.action();   }   public void ownShoot(){    shoot.action();   }    public void setPass(Passable pass) {    this.pass = pass;   }    public void setShoot(Shootable shoot) {    this.shoot = shoot;   }     }

這里我們采用了策略模式,將傳球和射門這一類動作定義為標(biāo)準(zhǔn),封裝起來,讓他們之間可以互相的組合和替換,這樣有效的使具體操作和實現(xiàn)分離。

上面一段話也可以這樣說:

策略模式定義了算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化獨立于使用算法的客戶。

得到幾個設(shè)計原則:

1.找到應(yīng)用中可能變化之處,把它們獨立初以來,不要和那些不需要變化的代碼混在一起。

2.針對接口編程,而不是針對實現(xiàn)編程。

3.多用組合,少用繼承。

類圖:

Java中如何實現(xiàn)策略模式

以上就是策略模式的一個簡單案例。

感謝各位的閱讀!關(guān)于“Java中如何實現(xiàn)策略模式”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


網(wǎng)站題目:Java中如何實現(xiàn)策略模式
文章鏈接:http://weahome.cn/article/pgheos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部