美文网首页
{C#}设计模式辨析.策略

{C#}设计模式辨析.策略

作者: 码农猫爸 | 来源:发表于2021-08-13 05:12 被阅读0次

背景

  • 策略作为算法,可自由替换

示例

using System.Collections.Generic;
using static System.Console;

namespace DesignPattern_Strategy
{
    public interface IStrategy
    {
        void Sort(List<string> names);
    }

    public class QuickSort : IStrategy
    {
        public void Sort(List<string> names)
            => WriteLine("Quick sort is executed.");
    }

    public class BubbleSort : IStrategy
    {
        public void Sort(List<string> names)
            => WriteLine("Bubble sort is executed.");
    }

    public class Context
    {
        public IStrategy Strategy { get; set; }

        public Context(IStrategy strategy)
        {
            Strategy = strategy;
        }

        public void Sort(List<string> names)
        {
            Strategy.Sort(names);
            names.ForEach(x => WriteLine(x));
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var quick = new QuickSort();
            var bubble = new BubbleSort();
            var context = new Context(quick);

            var list = new List<string> { "A", "B", "C" };
            context.Sort(list);

            context.Strategy = bubble;
            context.Sort(list);

            ReadKey();
        }
    }
}

相关文章

  • {C#}设计模式辨析.策略

    背景 策略作为算法,可自由替换 示例

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • {C#}设计模式辨析.命令

    背景 通过命令解耦接收者和调用者。 接收者,处理具体请求。 命令,绑定接收者和请求。 调用者=命令容器,可执行和撤...

  • {C#}设计模式辨析.状态

    背景 前序状态执行后,切换到后续状态 与责任链异同责任链:遍历并下放到具体责任者处理要求状态:在不同状态中轮转处理...

  • {C#}设计模式辨析.门面

    背景 复杂系统,可切割成多个相互独立的子系统并由子系统组合而成 与桥接的异同桥接的是维度,每个维度可由子类替换门面...

  • {C#}设计模式辨析.组合

    背景 处理枝(叶的集合)和叶结构 示例

  • {C#}设计模式辨析.代理

    背景 在原程序上加壳,ex. 壳=虚拟/保护/远程/日志记录 等 示例

  • {C#}设计模式辨析.原型

    背景 绕过构造器,快速创建已有原型的复制品。 复制品可与原型脱勾,独立修改属性或字段。 示例

  • {C#}设计模式辨析.抽象工厂

    背景 工厂模式也可应用到多类产品,单类产品请参考https://www.jianshu.com/p/09992d0...

  • {C#}设计模式辨析.桥接

    背景 桥接多个维度时 实现@抽象类:子类继承产生基础维度构造器传参其它维度(1-n)方法提炼或交互多个维度 示例

网友评论

      本文标题:{C#}设计模式辨析.策略

      本文链接:https://www.haomeiwen.com/subject/jonqbltx.html