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

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

    需要基础

    1. 对 OOP 有基本理解

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

    大纲

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

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

    UML 理论图和实际对比图

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

    百度百科

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

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

  • 相关阅读:
    嵌入式开发杂谈
    C#连接数据库
    C软件机密解密之动态跟踪
    navicat连接mysql8报错
    tomcat 服务版本内存设置
    python2/python3 升级pi版本
    各种源文件和目录
    Day 2 : 变量、JAVA基本类型、运算符和表达式1
    猜字母游戏
    Day 1 : 行业概述、JAVA开发环境
  • 原文地址:https://www.cnblogs.com/linma/p/5435422.html
Copyright © 2011-2022 走看看