本文以一個簡單的實例來說明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#程序設計有所幫助。
新聞熱點
疑難解答