zoukankan      html  css  js  c++  java
  • 策略模式(Stratety)

    namespace StrategyPattern //策略模式
    {
        /// <summary>
        /// 定义所以支持的算法的公共接口
        /// </summary>
        abstract  class Strategy
        {
            /// <summary>
            /// 算法方法。
            /// </summary>
            public abstract void AlgorithmInrerface();
        }
    
        class ConcreateStratetyA : Strategy
        {
            public override void AlgorithmInrerface()
            {
                Console.WriteLine("实现算法A"); 
            }
        }
    
        class ConcreateStratetyB : Strategy
        {
            public override void AlgorithmInrerface()
            {
                Console.WriteLine("实现算法B");
            }
        }
    
        class ConcreateStratetyC : Strategy
        {
            public override void AlgorithmInrerface()
            {
                Console.WriteLine("实现算法C");
            }
        }
    
        /// <summary>
        /// 用一个ConcreateStratety来配置,来维护一个对Stratety对象的引用。
        /// </summary>
        class Context
        {
            Strategy stratety;
            public Context(Strategy stratety)//构造器注入具体的策略对象。    
            {
                this.stratety = stratety;
            }
            /// <summary>
            /// 根据具体策略的对象,调用其算法的方法。
            /// </summary>
            public void ContextInterface()
            {
                stratety.AlgorithmInrerface();
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                Context context = null;
    
                context = new Context(new ConcreateStratetyA());
                context.ContextInterface();
    
    
                context = new Context(new ConcreateStratetyB());
                context.ContextInterface();
    
    
                context = new Context(new ConcreateStratetyC());
                context.ContextInterface();
    
                Console.Read();
            }
        }
    }
  • 相关阅读:
    NodeJs实现图片上传
    初步认识Express框架渲染视图
    在javascript中使用replace
    javascript作用域与闭包
    eviews面板数据的操作
    我做的python常用的小技巧
    css3学习笔记
    div垂直居中的问题
    display和visibility的区别
    关于call和apply的那点事儿
  • 原文地址:https://www.cnblogs.com/longdb/p/7259206.html
Copyright © 2011-2022 走看看