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

策略模式范例:有關足球的場景

開發 后端
本文通過一個有關足球的場景,介紹了策略模式的使用。簡單來說,策略模式就是將動作定義為標準并封裝,從而使具體操作和實現分離。

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

這里設計了一個有關足球的場景,在進攻當中暫分為傳球和射門兩個動作。

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

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

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

像這樣來定義:(其中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.  

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

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

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

得到幾個設計原則:

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

2.針對接口編程,而不是針對實現編程。

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

類圖:

類圖 

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

【編輯推薦】

  1. ASP.NET緩存中Cache過期的三種策略
  2. WCF安全之基于自定義聲明授權策略
  3. Hibernate學習筆記之Lazy策略
  4. J2EE事務并發控制策略總結
  5. 揭秘Google背后的IT架構策略
責任編輯:yangsai 來源: JavaEye博客
相關推薦

2022-05-13 07:26:28

策略模式設計模式

2022-10-28 07:15:26

策略模式使用場景UML

2009-08-18 11:03:31

Observer設計模

2021-11-04 06:58:32

策略模式面試

2017-07-04 16:18:28

云適配場景解決方案

2017-07-07 10:55:14

數據庫MongoDB設計模式

2012-08-30 09:07:33

設計模式

2013-11-26 16:09:34

Android設計模式

2024-12-09 09:40:00

策略模式Java

2021-08-09 10:33:51

人工智能

2009-08-14 09:40:55

MyEclipse整合

2021-06-09 08:53:34

設計模式策略模式工廠模式

2015-09-08 13:39:10

JavaScript設計模式

2025-03-26 00:03:00

Go設計模式

2011-07-20 14:04:42

.NET策略模式

2023-03-20 09:17:13

策略模式Springboot

2023-02-22 09:16:22

2009-08-19 10:34:16

反爬蟲

2010-02-06 10:04:10

Android啟動模式

2009-08-12 11:40:39

雙檢測鎖定
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99九九久久 | 久久丁香 | 日韩视频在线播放 | 日本不卡一区二区三区在线观看 | 成人激情视频在线观看 | 日本不卡一区二区三区在线观看 | 蜜桃视频成人 | 夜夜草| 国产1区2区 | 亚洲视频三区 | 免费看黄色国产 | 欧美a级网站 | 91精品久久久久久久久久入口 | 午夜看电影在线观看 | 欧美日韩久久 | 美国黄色毛片 | 波多野结衣中文字幕一区二区三区 | 国产精品一区二区无线 | 黄色在线播放视频 | 国产精品久久久久久久久久久免费看 | 狠狠操狠狠干 | 国产一级淫片免费视频 | 91精品国产乱码麻豆白嫩 | 久久久久久亚洲精品 | 99免费看| 欧美在线观看免费观看视频 | 中文二区 | 欧美日韩在线一区二区三区 | 成人免费看片又大又黄 | 国产美女在线精品免费 | 一区日韩 | 成人在线中文字幕 | 日韩av在线中文字幕 | 中文字幕一区在线观看视频 | 久久久久久久久久久一区二区 | 亚洲国产精品99久久久久久久久 | 亚洲精品视频在线观看免费 | 久久精品一区二区视频 | 中文字幕成人 | 国产高清区 | 91n成人|