• 设计模式学习笔记(3)之策略设计模式(Strategy)


    定义:他定义了算法家族,分别封装起来,让他们之前可以相互替换,此模式让算法的变化,不影响到使用算法的客户。

    结构图:如下所示

    优点:

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

    2、策略模式的Strategy类层次为Context定义了一些列的可重用的算法或行为。继承有助于取出这些算法的公共功能。

    3、简化了单元测试。因为么个算法都有自己的类,它可以通过自己的接口单独测试。

    4、使用Strategy可以消除大量的条件语句。使系统更灵活,并已于扩展。

    5、设计原则:优先使用对象组合,而非类继承。

    附件代码:

     abstract class Strategy
        {
            public abstract void AlgorithmInterface();
        }
        public class Content
        {
            private Strategy strategy;
            public Content(Strategy strategy)
            {
                this.strategy = strategy;
            }
            public void Dispay()
            {
                strategy.AlgorithmInterface();
            }
        }
        public class StrategyA : Strategy
        {
    
            public override void AlgorithmInterface()
            {
                Console.WriteLine("this is Algorithm A");
            }
        }
        public class StrategyB : Strategy
        {
    
            public override void AlgorithmInterface()
            {
                Console.WriteLine("this is Algorithm B");
            }
        }
    


    作者:追梦网络
    出处:http://www.cnblogs.com/dream844/
    本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    CSS三大特性
    CSS选择器
    CSS(1)
    多媒体标签
    快捷键
    H5注意点(2)
    H5注意点(1)
    List详解
    求最大子串和以及其中一个子串(java)
    隧道项目
  • 原文地址:https://www.cnblogs.com/dream844/p/3067229.html
Copyright © 2020-2023  润新知