C#策略模式(Strategy Pattern)實例教程
更新時間:2014年09月12日 14:44:39 投稿:shichen2014
這篇文章主要介紹了C#策略模式(Strategy Pattern),以一個簡單的實例講述了C#策略模式的實現方法,包括策略模式的用途以及具體實現方法,需要的朋友可以參考下
本文以一個簡單的實例來說明C#策略模式的實現方法,分享給大家供大家參考。具體實現方法如下:
一般來說,當一個動作有多種實現方法,在實際使用時,需要根據不同情況選擇某個方法執(zhí)行動作,就可以考慮使用策略模式。
把動作抽象成接口,比如把玩球抽象成接口。代碼如下:
public interface IBall { void Play(); }
有可能是玩足球、籃球、排球等,把這些球類抽象成實現接口的類。分別如下:
public class Football : IBall { public void Play() { Console.WriteLine("我喜歡足球"); } } public class Basketball : IBall { public void Play() { Console.WriteLine("我喜歡籃球"); } } public class Volleyball : IBall { public void Play() { Console.WriteLine("我喜歡排球"); } }
還有一個類專門用來選擇哪種球類,并執(zhí)行接口方法:
public class SportsMan { private IBall ball; public void SetHobby(IBall myBall) { ball = myBall; } public void StartPlay() { ball.Play(); } }
客戶端需要讓用戶作出選擇,根據不同的選擇實例化具體類:
class Program { static void Main(string[] args) { IBall ball = null; SportsMan man = new SportsMan(); while (true) { Console.WriteLine("選擇你喜歡的球類項目(1=足球, 2=籃球,3=排球)"); string input = Console.ReadLine(); switch (input) { case "1": ball = new Football(); break; case "2": ball = new Basketball(); break; case "3": ball = new Volleyball(); break; } man.SetHobby(ball); man.StartPlay(); } } }
程序運行結果如下圖所示:
希望本文所述對大家的C#程序設計有所幫助。
相關文章
C#使用ThreadPriority設置線程優(yōu)先級
這篇文章介紹了C#使用ThreadPriority設置線程優(yōu)先級的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04Winform控件優(yōu)化Paint事件實現圓角組件及提取繪制圓角的方法
這篇文章主要介紹了Winform控件優(yōu)化Paint事件實現圓角組件及提取繪制圓角的方法,Windows?11下所有控件已經默認采用圓角,其效果更好、相對有著更好的優(yōu)化,只是這是默認的行為,無法進一步自定義,更多詳情需要的小伙伴可以參考下面文章內容2022-08-08