用最简单的例子理解策略模式(Strategy Pattern)
生活随笔
收集整理的這篇文章主要介紹了
用最简单的例子理解策略模式(Strategy Pattern)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當一個動作有多種實現方法,在實際使用時,需要根據不同情況選擇某個方法執行動作,就可以考慮使用策略模式。
?
把動作抽象成接口,比如把玩球抽象成接口。
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(); } } }轉載于:https://www.cnblogs.com/darrenji/p/3959904.html
總結
以上是生活随笔為你收集整理的用最简单的例子理解策略模式(Strategy Pattern)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用PYTHON统计项目代码行数
- 下一篇: 使用Microsoft Unity进行日