C#戰略形式(Strategy Pattern)實例教程。本站提示廣大學習愛好者:(C#戰略形式(Strategy Pattern)實例教程)文章只能為提供參考,不一定能成為您想要的結果。以下是C#戰略形式(Strategy Pattern)實例教程正文
本文以一個簡略的實例來講明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#法式設計有所贊助。