九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

第三講策略模式課件

上傳人:痛*** 文檔編號:247852474 上傳時間:2024-10-21 格式:PPT 頁數:15 大?。?26.50KB
收藏 版權申訴 舉報 下載
第三講策略模式課件_第1頁
第1頁 / 共15頁
第三講策略模式課件_第2頁
第2頁 / 共15頁
第三講策略模式課件_第3頁
第3頁 / 共15頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《第三講策略模式課件》由會員分享,可在線閱讀,更多相關《第三講策略模式課件(15頁珍藏版)》請在裝配圖網上搜索。

1、單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標題樣式,第三章 策略模式,韓 格,2011,年,3,月,提綱,3.1,問題描述,3.2,典型案例,3.3,策略模式,3.4,效果與適應性,3.1,問題描述,問題,在處理客戶相同的業(yè)務時,可能有不同的邏輯處理算法??蛻粜枰喾N不同的算法實現。,客戶希望在運行時根據上下文選擇其中一個算法。使用算法的類變得復雜而難于維護,尤其當需要支持多種算法且每種算法都很復雜時問題會更加嚴重;,不同時候需要不同的算法,支持并不使用的算法可能帶來性能的負擔;,算法的實現和使用算法的對象緊緊耦合在一起,使新增算法或修改算法變得十分困難,系

2、統(tǒng)應對變化的能力很差。,3.1,問題描述,方法,依據面向對象的思想,我們所能想到的辦法就是將每種算法的實現都剝離出來構成一個個獨立的算法對象,再從這些算法對象中抽象出公共的算法接口,最后將算法接口組合到使用算法的類中。上述思路就引入了一個新的設計模式策略模式。,3.2,典型案例,超市打折收銀軟件,為提高超市收益,超市開展促銷活動。除了正常收費方式,外,添加對某些產品打折收費和滿額返現收費方式。例如:,商品打,8,折、打,7,折、滿,300,元消費返回,100,元、滿,500,返,200,。實現能夠計算總收費額度的功能。,如何添加和修改各式各樣的多種收費方式,?,3.2,典型案例,3.2,典型案

3、例,收銀軟件設計類圖,3.2,典型案例,abstract class,CashSuper,/,收取現金的父類,public abstract double,AcceptCash(double,cash);,class,CashRebate:CashSuper,/,按一定打折率收取現金類,private double discount=1.0;,public,CashRebate(double,_discount),discount=_discount;,public override double,AcceptCash(double,cash),return cash*discount;,部分

4、核心源碼,3.2,典型案例,public virtual GroupBox CreateGroupBox(String title,Control control),GroupBox gb=new GroupBox();,gb.Text=title;,gb.Dock=DockStyle.Fill;,gb.Controls.Add(control);,control.Dock=DockStyle.Fill;,return gb;,public virtual Panel CreatePanel(),Panel pl=new Panel();,pl.BackColor=Color.White;,p

5、l.Paint+=new PaintEventHandler(pl_Paint);,return pl;,protected void pl_Paint(object sender,PaintEventArgs pea),int nPoint=101;,double w=(Panel)sender).Width-1;,double h=(Panel)sender).Height-1;,Point points=new PointnPoint;,for(int i=0;i nPoint;i+),double t=(double)i)/(nPoint-1);,pointsi.X=(int)(t*w

6、);,pointsi.Y=(int)(4*h*(t-.5)*(t-.5);,Pen p=new Pen(Color.Black);,Graphics g=pea.Graphics;,g.DrawLines(p,points);,3.3,策略模式,策略模式(,Strategy,),它定義了算法家族,分別對其封裝起來,通過基類讓它們之間可以相互替換,而算法的變化不會影響到使用算法的客戶。,3.3,策略模式,3.4,效果與適應性,優(yōu)點,策略模式定義一系列算法,從概念上來看,所有這些算法都是完成相同或相似的工作,只是實現不同。它能以相同的方式調用所有算法,減少各種算法類與使用算法類之間的耦合。,策略模

7、式的,Strategy,類層次為,Context,定義了一系列的可供重用的算法或行為。因為繼承有助于析取出這些算法的公共功能。,3.4,效果與適應性,策略模式也化簡了單元測試,因為每一個算法都在一個類內,可以通過自己的接口單獨測試。,缺點,客戶端必須知道所有的策略類,并自行決定使用哪一個策略類。這就意味著客戶端必須理解這些算法的區(qū)別,以便適時選擇恰當的算法類。換言之,策略模式只適用于客戶端知道所有的算法或行為的情況。,策略模式造成很多的策略類。有時候可以通過把依賴于環(huán)境的狀態(tài)保存到客戶端里面,而將策略類設計成可共享的,這樣策略類實例可以被不同客戶端使用。換言之,可以使用享元模式來減少對象的數量。,3.4,效果與適應性,適用范圍,策略模式就是用來封裝算法的。在實踐中,我們發(fā)現可以用它來封裝幾乎任何類型的規(guī)則,只要在分析過程中聽到需要再不同情況下應用不同的業(yè)務規(guī)則,就可以考慮使用策略模式處理這種變化的肯能性。,The End,Thanks!,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!