成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

策略模式范例:有關(guān)足球的場(chǎng)景

開(kāi)發(fā) 后端
本文通過(guò)一個(gè)有關(guān)足球的場(chǎng)景,介紹了策略模式的使用。簡(jiǎn)單來(lái)說(shuō),策略模式就是將動(dòng)作定義為標(biāo)準(zhǔn)并封裝,從而使具體操作和實(shí)現(xiàn)分離。

你了解策略模式么?如果你對(duì)足球很熟悉,那么看了下面的介紹后,你大概會(huì)同樣熟悉策略模式了。

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

最開(kāi)始你可能會(huì)這樣想,設(shè)計(jì)一個(gè)抽象類(lèi)(Attact),傳球和射門(mén)分別定義好,子類(lèi)會(huì)有一些他們個(gè)性的東西。比如球員號(hào)碼,教練名稱(chēng)等等。

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

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

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

  1. package strategy;  
  2.  
  3. /**  
  4.  * @author edison  
  5.  * @date 2009-9-24  
  6.  */ 
  7. public abstract class Attact {  
  8.  Passable pass;  
  9.  Shootable shoot;  
  10.    
  11.  public abstract void display();  
  12.    
  13.  public void ownPass(){  
  14.   pass.action();  
  15.  }  
  16.  public void ownShoot(){  
  17.   shoot.action();  
  18.  }  
  19.  
  20.  public void setPass(Passable pass) {  
  21.   this.pass = pass;  
  22.  }  
  23.  
  24.  public void setShoot(Shootable shoot) {  
  25.   this.shoot = shoot;  
  26.  }  
  27.    
  28. }  
  29.  

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

上面一段話也可以這樣說(shuō):

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

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

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

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

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

類(lèi)圖:

類(lèi)圖 

以上就是策略模式的一個(gè)簡(jiǎn)單案例。

【編輯推薦】

  1. ASP.NET緩存中Cache過(guò)期的三種策略
  2. WCF安全之基于自定義聲明授權(quán)策略
  3. Hibernate學(xué)習(xí)筆記之Lazy策略
  4. J2EE事務(wù)并發(fā)控制策略總結(jié)
  5. 揭秘Google背后的IT架構(gòu)策略
責(zé)任編輯:yangsai 來(lái)源: JavaEye博客
相關(guān)推薦

2022-05-13 07:26:28

策略模式設(shè)計(jì)模式

2022-10-28 07:15:26

策略模式使用場(chǎng)景UML

2009-08-18 11:03:31

Observer設(shè)計(jì)模

2021-11-04 06:58:32

策略模式面試

2017-07-07 10:55:14

數(shù)據(jù)庫(kù)MongoDB設(shè)計(jì)模式

2012-08-30 09:07:33

設(shè)計(jì)模式

2017-07-04 16:18:28

云適配場(chǎng)景解決方案

2013-11-26 16:09:34

Android設(shè)計(jì)模式

2024-12-09 09:40:00

策略模式Java

2009-08-14 09:40:55

MyEclipse整合

2021-08-09 10:33:51

人工智能

2021-06-09 08:53:34

設(shè)計(jì)模式策略模式工廠模式

2015-09-08 13:39:10

JavaScript設(shè)計(jì)模式

2025-03-26 00:03:00

Go設(shè)計(jì)模式

2011-07-20 14:04:42

.NET策略模式

2023-02-22 09:16:22

2023-03-20 09:17:13

策略模式Springboot

2009-08-19 10:34:16

反爬蟲(chóng)

2010-02-06 10:04:10

Android啟動(dòng)模式

2009-08-12 11:40:39

雙檢測(cè)鎖定
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 中文在线视频观看 | 欧美一区2区三区3区公司 | 亚洲美女一区 | gav成人免费播放视频 | 台湾佬久久 | 一级片av| 国产成人精品午夜 | 成人三级影院 | 精品日韩一区 | 一区二区视频在线 | 欧美成人a∨高清免费观看 欧美日韩中 | 国产精品久久久久久久久久久久久 | 日韩精品专区在线影院重磅 | 亚洲精品视频在线观看免费 | 日韩在线欧美 | 亚洲欧洲综合av | 中文字幕丁香5月 | 在线婷婷 | 国产精品久久久久久 | caoporn视频在线 | 国产午夜久久久 | 蜜桃av一区二区三区 | 亚洲精品一区av在线播放 | 国产激情视频在线 | 国产成人精品免高潮在线观看 | 噜噜噜噜狠狠狠7777视频 | 蜜臀av日日欢夜夜爽一区 | 久草免费在线视频 | 狠狠天天 | 在线观看涩涩视频 | 精品视频一区二区三区 | 亚洲成人午夜电影 | 欧美一区二区三区久久精品 | 亚洲高清av | 四虎影视1304t | 四虎最新地址 | 日韩精品视频网 | 亚洲综合无码一区二区 | 中文字幕精品一区久久久久 | 国产精品久久久久一区二区 | 毛片入口 |