场景是这样,五一快到了,想要回家看看,怎么回去呢,不可能靠11路吧~那现在就要选择一种方式了。可是,选择要根据腰包里的钱啊,有钱,好,飞机,又快又舒服。可惜,穷人一个,只好火车了,哈哈... using System; using System.Collections.Generic; using System.Text; namespace 策略模式 { class Program { //定义一个抽象策略类,下面有一抽象方法 public abstract class GoHome { public abstract void Go(); } //定义具体策略A,方式飞机 public class GoHomeA:GoHome { public override void Go() { Console.WriteLine("坐飞机"); } } //定义具体策略B,方式火车 public class GoHomeB : GoHome { public override void Go() { Console.WriteLine("坐火车"); } } //定义场景,口袋中的钱 public class Money { //私有字段,用来维护抽象策略类 private GoHome gohome; //在构造器中传递策略,用来设置私有的抽象策略字段 public Money(GoHome me) { this.gohome = me; } //场景下执行方法 public void ChoseOneGo() { gohome.Go(); } } static void Main(string[] args) { //这里是具体场景,我一摸兜里,钱太少了,还是做火车吧,然后选择了B策略 Money myMoney = new Money(new GoHomeB()); myMoney.ChoseOneGo(); Console.Read(); } } }