代码改变世界

策略模式实例

2016-08-03 23:47  lijianhua  阅读(187)  评论(0编辑  收藏  举报
public interface ITurn
    {
       string GetUrl();
    }
 public class NatiuBase:ITurn
    {
        public string StartDate { get; set; }
        public string EndDate { get; set; }
        public string PDUId { get; set; }
        public string Type { get; set; }

        public NatiuBase(string startDate,string endDate,string pduId,string type)
        {
            this.StartDate = startDate;
            this.EndDate = endDate;
            this.PDUId = pduId;
            this.Type = type;
        }

        public virtual string GetUrl()
        {
            return "我是父类";
        }

      


    }
public class KDS:NatiuBase
    {
        public KDS(string startDate, string endDate, string pduId, string type): base(startDate, endDate, pduId, type)
        { }
        public override string GetUrl()
        {
            return string.Format("开始日期:{0},结束日期{1}", StartDate, EndDate);
        }
    }

public class Context
    {
        public ITurn iturn;
        public Context(ITurn iturn)
        {
            this.iturn = iturn;
        }

        public string GetUrl()
        {
            return iturn.GetUrl();
        }
    }

 

 static void Main(string[] args)
        {
            Context context = new Context(new KDS("2012-02-12", "2012-09-12", "50000", "kds_all"));
            Console.WriteLine(context.GetUrl());

            Context context2 = new Context(new NatiuBase("2012-02-12", "2012-09-12", "50000", "kds_all"));
            Console.WriteLine(context2.GetUrl());
            Console.ReadKey();

         
        }