大话大话设计模式之策略模式

策略模式是定义一系列算法的方法,所有这些算法完成都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类之间的耦合
 
主要运用的场景:只要在分析过程中听到需要在不同时间应用不同的业务规则处理时,就可以使用
 
基本算法
 
 

  

 
    //抽象算法类
    abstract class Strategy
    {
        //算法方法
        public abstract void AlgorithmInterface();
    }
    //具体算法A
    class ConcreteStrategyA : Strategy
    {
        //算法A实现方法
        public override void AlgorithmInterface()
        {
            Console.WriteLine("算法A实现");
        }
    }
    //具体算法B
    class ConcreteStrategyB : Strategy
    {
        //算法B实现方法
        public override void AlgorithmInterface()
        {
            Console.WriteLine("算法B实现");
        }
    }
    //具体算法C
    class ConcreteStrategyC : Strategy
    {
        //算法C实现方法
        public override void AlgorithmInterface()
        {
            Console.WriteLine("算法C实现");
        }
    }
    //上下文
    class Context
    {
        Strategy strategy;

        public Context(Strategy strategy)
        {
            this.strategy = strategy;
        }
        //上下文接口
        public void ContextInterface()
        {
            strategy.AlgorithmInterface();
        }
    }

    class Program {
        static void Main(string[] args) {
            Context context;

            context = new Context(new ConcreteStrategyA());
            context.ContextInterface();

            context = new Context(new ConcreteStrategyB());
            context.ContextInterface();

            context = new Context(new ConcreteStrategyC());
            context.ContextInterface();

            Console.Read();
        }
    }

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

posted on 2017-03-05 21:59  S二十四桥S  阅读(148)  评论(0)    收藏  举报

导航