• 策略模式原型


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace StrategyMordern
    {
         /// <summary>
        /// 抽象算法类  
        /// </summary>
        abstract class Strategy
        {
            //算法方法
            public abstract void AlgorithmInterface();
        }
     
        class ConcreteStrategyA : Strategy
        {
            //算法A实现方法
            public override void AlgorithmInterface()
            {
                Console.WriteLine("算法A实现");
            }
        }
     
        class ConcreteStrategyB : Strategy
        {
            //算法B实现方法
            public override void AlgorithmInterface()
            {
                Console.WriteLine("算法B实现");
            }
        }
     
        class ConcreteStrategyC : Strategy
        {
            //算法C实现方法
            public override void AlgorithmInterface()
            {
                Console.WriteLine("算法C实现");
            }
        }
     
        /// <summary>
        /// Context,用一个ConcreteStrategy来配置,维护一个对Strategy对象的引用。
        /// </summary>
        class Context
        {
            Strategy strategy;
            public Context(Strategy strategy)
            {
                this.strategy = strategy;
            }
     
            //上下文接口
            public void ContextInterface()
            {
                strategy.AlgorithmInterface();
            }
        }
    }
     
     
    //Main函数主界面
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace StrategyMordern
    {
        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();
            }
        }
    }
    代码都是书里看到的,自己手写的。大家共同学习。
  • 相关阅读:
    第四次实验报告
    第三次实验报告
    循环结构课后反思
    第二次实验报告
    第一次实验报告1
    第一次作业
    第二次实验报告 总结
    第九章实验报告
    第八章实验报告
    第六次实验报告
  • 原文地址:https://www.cnblogs.com/loveyatou/p/2961627.html
Copyright © 2020-2023  润新知