標籤:switch ack inpu 輸入輸出 使用 返回 write 修改 margin
本文以一個簡單的執行個體來說明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#中把英文字母轉換為大寫或小寫方法
C#策略模式(Strategy Pattern)執行個體教程