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();
            }
        }
    }
    代码都是书里看到的,自己手写的。大家共同学习。
  • 相关阅读:
    STL中的string
    STL中的map
    STL中的set和multiset
    C++基础知识
    希尔排序
    桶排序
    归并排序
    堆排序
    数组左边奇数右边偶数算法O(n)
    背包问题 洛谷P1164 小A点菜
  • 原文地址:https://www.cnblogs.com/loveyatou/p/2961627.html
Copyright © 2011-2022 走看看