欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

策略模式(Strategy)

系統(tǒng) 2853 0
?? Strategy 屬于行為模式,用意是針對(duì)一組算法,將每一個(gè)算法封裝到具有共同接口的獨(dú)立的類中,從而使得它們可以相互替換,它可以客戶端的選擇來,決定用什么實(shí)現(xiàn)。
??? Context(上下文環(huán)境) 其內(nèi)組合了一個(gè)策略的抽象類,然后具體的實(shí)現(xiàn)交給繼承策略抽象類的子類去實(shí)現(xiàn)。
??? 從上面一句話,可以看到,Strategy 涉及到三個(gè)角色:
? Context環(huán)境角色 :它是使用策略模式的場(chǎng)景,即持有一個(gè)策略類。
?? 抽象策略角色: 這是一個(gè)抽象角色,通過是由一個(gè)接口事抽象類實(shí)現(xiàn),這個(gè)類提供所有的具體策略所需的接口。
??? 具體策略(ConcreteStrategy)角色 :實(shí)現(xiàn)抽象策略類提供的接口,不同的實(shí)現(xiàn),有不同的具體策略類。

策略模式(Strategy)


??? 模板可以是這樣的:
上下文角色:
    
public class Context
{
   private Strategy strategy;

   /**
   * 策略方法,算法
   */
    public void algorithm()
    {
      strategy.strategyAlgorithm();
    }
}


  


抽象策略角色:
    
  public abstract class Strategy
  {
     /**
      * 抽象策略方法,算法
      */
    public abstract void strategyAlgorithm();

   }

  


具體策略類:

    
   
public class ConcreteStrategy extends Strategy
{
    /**
     *  策略實(shí)現(xiàn)
     */
    public void strategyAlgorithm()
    {
       //different   subStrategy have different algorithm
     }
}

  


從這個(gè)模板中可以知道:在同一個(gè)環(huán)境中,抽象策略中只是定義了行為,相同的行為而不同的實(shí)現(xiàn)方式交由具體的策略類去實(shí)現(xiàn)。

何時(shí)使用策略模式:
?? a.一個(gè)系統(tǒng)里面有許多類,但是他們的區(qū)別只是他們的行為,那么可以使用Strategy動(dòng)態(tài)讓一個(gè)對(duì)象選擇行為的一種。
?? b.一個(gè)系統(tǒng)動(dòng)態(tài)的在幾個(gè)算法中選擇一種。
  c.一個(gè)系統(tǒng)的算法使用的數(shù)據(jù)不可以讓客戶端知道。
  d.如果一個(gè)對(duì)象有很多的行為,不用恰當(dāng)?shù)哪J剑@些行為就只好使用多重條件選擇語句來實(shí)現(xiàn),如果這時(shí)使用策略模式可以避免使用難以維護(hù)的多重選擇語句。

Strategy的優(yōu)點(diǎn)與缺點(diǎn):
  a.恰當(dāng)使用繼承,把公用代碼移動(dòng)到父類中,從而避免重復(fù)的代碼。
  b.策略模式提供了可以替換繼承者關(guān)系的辦法。
  c.避免了多重條件的使用
fault:
??? a.客戶端必須知道理解所有的策略,算法,并自行決定使用哪一個(gè)策略類。
  b.會(huì)產(chǎn)生很多具體算法的策略實(shí)現(xiàn)類,可以使用享元模式來減少對(duì)象的數(shù)量。


?

策略模式(Strategy)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 成人精品福利 | 日本护士xxxxx极品 | 免费观看欧美一级高清 | 天天噜天天干 | 一级毛片,一级毛片 | 天天拍天天干天天操 | 欧美国产激情二区三区 | 小明www永久免费播放平台 | 亚洲一区在线观看视频 | 国产精品资源网站在线观看 | 小明成人免费视频 | 国产毛片欧美毛片久久久 | 看了让人下面流水的视频 | 日韩做A爰片久久毛片A片 | 奇米精品 | 日本又黄又粗暴的gif动态图含羞 | 九九九视频 | 成人国产在线观看 | 成人国产一区二区三区 | 国产精品冒白浆免费视频 | 久久国产视频网站 | 久草福利在线视频 | JLZZJLZZ亚洲乱熟在线播放 | 中文字幕在线精品 | 日日碰狠狠添天天爽五月婷 | 在线观看免费国产视频 | 日韩精品极品视频在线观看免费 | 精东视频污 | 国产精品人妻无码八区仙踪林 | 亚洲欧美中文日韩在线v日本 | 日韩一区二区三区在线 | 欧美日韩在线播放一区二区三区 | 91网站免费观看直播 | a毛片在线 | 成人三级视频 | 国产视频一 | av中文字幕在线观看 | 国产成人精品在线观看 | 五月深爱婷婷 | 亚州国产 | 一级做a爰片久久毛片 |