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();
            }
        }
    }
    代码都是书里看到的,自己手写的。大家共同学习。
  • 相关阅读:
    SQLServer之视图简介
    几种快速以伺服静态文件的方法
    Node.js静态文件服务器实战[转]
    mac ssh中文乱码解决
    SSH上传和下载文件
    在web项目中集成pdf.js的默认查看器
    用pip批量更新所有包
    C# 异步锁【转】
    .NET 4并行编程入门之Task的取消[转]
    VIM技巧:选择文本块
  • 原文地址:https://www.cnblogs.com/loveyatou/p/2961627.html
Copyright © 2011-2022 走看看