• 设计模式-策略模式


    阅读《Head First 设计模式》中文版读后感。

    需要基础

    1. 对 OOP 有基本理解

    2. 有过实际的 J2EE 项目开发经验

    大纲

    1. UML 理论图和实际对比图

    2. 百度关于该模式的定义和自己的理解对比

    UML 理论图和实际对比图

    百度关于该模式的定义和自己的理解对比

    百度百科

      意图
        定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
      适用性
        1.许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。
        2.需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时,可以使用策略模式。
        3.算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。
         一个类定义了多种行为, 并且这些行为在这个类的操作中以多个条件语句的形式出现。将相关的条件分支移入它们各自的Strategy类中以代替这些条件语句。
    个人理解
      意图
        寻找代码中经常变化和需要新增的地方,抽离这部分,在基础代码这里也就是Duck类里面只留下抽象引用。
      适用性
        百度说的太笼统了,这里举个自己在实际开发中使用到策略模式的地方,关于支付通道既可以是微信支付也可以是支付宝或pos刷卡,这里我将支付这个行为抽离出来,
        然后编写 微信支付实现类,支付宝支付实现类, pos刷卡实现类。

    很多内容都是书中直接摘出,写博客只是为加深对设计模式的印象。

  • 相关阅读:
    完美正方形-深度遍历
    CGCDSSQ Codeforces 475D
    [国家集训队]happiness
    点分治学习笔记
    [POI2008]PLA-Postering
    [20200801NOIP提高组模拟T2]电话线铺设
    [20200801NOIP提高组模拟T3]老司机
    [HNOI2001]产品加工
    分层图最短路[学习笔记]
    次芝麻
  • 原文地址:https://www.cnblogs.com/linma/p/5435422.html
Copyright © 2020-2023  润新知