策略模式实例

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();

        }

  

 

  

  

时间: 2024-08-06 16:06:32

策略模式实例的相关文章

策略模式 实例

<?php interface FlyBehavior{     public function fly(); } class FlyWithWings implements FlyBehavior{     public function fly(){         echo "Fly With Wings \n";     } } class FlyWithNo implements FlyBehavior{     public function fly(){      

php设计模式之策略模式实例代码

html <html> <head> <meta charset="UTF-8"> <title>简单计算器</title> </head> <body> <h1>简单计算器</h1> <form action="10.php" method="post"> <input type="text" nam

《JAVA与模式》之策略模式

策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理.策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类.用一句话来说,就是:"准备一组算法,并将每一个算法封装起来,使得它们可以互换".下面就以一个示意性的实现讲解策略模式实例的结构. 这个

《Java设计模式》之策略模式

策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 1,什么是策略模式? 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 2,策略模式有什么好处? 策略模式的好处在于你可以动态的改变对象的行为. 3,设计原则 设计原则是把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口(c++z中可以用虚类),然

设计模式(行为型)之策略模式(Strategy Pattern)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 阅读前一篇<设计模式(行为型)之迭代器模式(Iterator Pattern)>http://blog.csdn.net/yanbober/article/details/45497881 概述 使用策略模式可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法,在这里,每一个封

设计模式(十七)---策略模式

1.简介 策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 2.策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理.策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类. 用一句话来说,就是:"准备一组算法,并将每一个算法封装起来,使得它们可以互换".下面就以一个示意性的实现讲解策略模式实

13 策略模式

在阎宏博士的<JAVA与模式>一书中开头是这样描述策略(Strategy)模式的: 策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理.策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类.用一句话来说,就是:“准备一组算法,并将每一个算法封装起来

Java策略模式(Strategy模式) 之体验

<JAVA与模式>之策略模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述策略(Strategy)模式的: 策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理.策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类.用一句话来说,就

《JAVA与模式》之策略模式_转载

转自:http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html 在阎宏博士的<JAVA与模式>一书中开头是这样描述策略(Strategy)模式的: 策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管