zoukankan      html  css  js  c++  java
  • 策略模式原型

    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();
            }
        }
    }
    代码都是书里看到的,自己手写的。大家共同学习。
  • 相关阅读:
    ES6参考---Generator函数
    ES6参考---for...of方法
    ES6参考---Symbol属性
    ES6参考---形参默认值
    ES6参考---...运算符
    ES6参考---箭头函数
    legend3---一些手机浏览器打开网站提示安全证书有问题
    legend3---cdn加速oss域名配置问题
    一位草根炒房者的挣扎10年 竟落得如此下场
    LINUX:解压问题tar: Child returned status
  • 原文地址:https://www.cnblogs.com/loveyatou/p/2961627.html
Copyright © 2011-2022 走看看