• 策略模式


    将变化的抽离出来,行为抽离出来,统一动作。

    将使用和具体实现分离开来。

    策略 模式(表单验证,缓动动画)——更换一种出行方式。

    至少2部分组成:1组策略类(封装了具体的实现算法)+ 环境类Context(接受客户请求,随后把请求委托给某一策略类)。

    初始问题:

    1.if else类似逻辑函数庞大。2.需要修改算法的时候,需要深入内部函数,违反封闭-开放原则。3.复用性差,别的地方使用只能复制粘贴。故有策略模式产生。


    解决:
    将if else的思想封装到策略函数,将类似的展示提取出来,到一个函数,get,set等。然后将封装的函数传入,则调用不同的逻辑。
    原话思想:
    ##多态在策略模式中的体现。
    通过使用策略模式重构代码,消除源程序大片的条件分支语句。所有跟计算奖金有关的逻辑不再放到Context中。而不是分布在各个策略对象中。Context并没有计算奖金的能力,而是把职责委托给某个策略对象。每个策略对象负责的算法封装在对象内部。当我们发出计算请求时,会返回各自不同的计算结果。
    ##实现策略模式关键:
    找到封装变化、委托和多态性这些思想价值。

  • 相关阅读:
    了解 DICOM 基本协议与其相关
    C# PropertyInfo 反射实体部分字段
    ref(引用参数) 和 out(输出参数) 区别
    Linq Where Expression<Func<T,bool>> 查询条件
    随笔规范
    C# 集合分析
    C# 几种常用的数据类型
    关于 C# 方法参数的理解
    打算开始写博客了
    有趣的算法、逻辑面试题
  • 原文地址:https://www.cnblogs.com/rainbow661314/p/6934674.html
Copyright © 2020-2023  润新知