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

    策略模式:它定义了算法家族,分别封装起来,让他们可以相互转换,此模式让算法的改变不会影响到使用算法的客户

    策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合

    具体基本代码如下

    namespace 策略模式
    {
        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();
            }
        }
    
        //抽象算法类
        abstract class Strategy
        {
            //算法方法
            public abstract void AlgorithmInterface();
        }
        //具体算法A
        class ConcreteStrategyA : Strategy
        {
            //算法A实现方法
            public override void AlgorithmInterface()
            {
                Console.WriteLine("算法A实现");
            }
        }
        //具体算法B
        class ConcreteStrategyB : Strategy
        {
            //算法B实现方法
            public override void AlgorithmInterface()
            {
                Console.WriteLine("算法B实现");
            }
        }
        //具体算法C
        class ConcreteStrategyC : Strategy
        {
            //算法C实现方法
            public override void AlgorithmInterface()
            {
                Console.WriteLine("算法C实现");
            }
        }
        //上下文
        class Context
        {
            Strategy strategy;
    
            public Context(Strategy strategy)
            {
                this.strategy = strategy;
            }
            //上下文接口
            public void ContextInterface()
            {
                strategy.AlgorithmInterface();
            }
        }
    
    }
    

      

  • 相关阅读:
    redis 学习笔记
    导数据方法
    数据库常用操作
    zepto.js
    shopnc
    vue.js
    laravel
    mysql进阶学习
    Python基础------生成器表达式形式、面向过程编程、内置函数部分
    Python基础----生成器、三元表达式、列表生成式、生成器表达式
  • 原文地址:https://www.cnblogs.com/happygx/p/8392596.html
Copyright © 2011-2022 走看看