C#策略模式(Strategy Pattern)實例教程
阿新 • • 發佈:2017-11-13
奇葩 orm 需要 策略 lin pub 遊戲實例 客戶端 使用
C#策略模式(Strategy Pattern)實例教程
本文地址: http://www.paobuke.com/develop/c-develop/pbk23519.html
C#讀取Excel並轉化成XML的方法C#實現Json轉Unicode的方法C#實現洗牌遊戲實例 C#中把英文字母轉換為大寫或小寫的方法
本文以一個簡單的實例來說明C#策略模式的實現方法,分享給大家供大家參考。具體實現方法如下:
一般來說,當一個動作有多種實現方法,在實際使用時,需要根據不同情況選擇某個方法執行動作,就可以考慮使用策略模式。
把動作抽象成接口,比如把玩球抽象成接口。代碼如下:
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("我喜歡排球"); } }
還有一個類專門用來選擇哪種球類,並執行接口方法:
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#策略模式(Strategy Pattern)實例教程
本文地址: http://www.paobuke.com/develop/c-develop/pbk23519.html
相關內容
C#設置自定義文件圖標實現雙擊啟動(修改註冊表)C#調用存儲過程詳解(帶返回值、參數輸入輸出等)12306奇葩驗證碼引發思考之C#實現驗證碼程序C#自定義控件添加右鍵菜單的方法C#讀取Excel並轉化成XML的方法C#實現Json轉Unicode的方法C#實現洗牌遊戲實例
C#策略模式(Strategy Pattern)實例教程