• 设计模式(10)Stategy策略设计模式


    一.什么是策略模式

    只需替换算法的实现部分,就可以让我们轻松使用不同的算法去解决同一个问题.

    二.例子

    1.类

    Hand : 表示猜拳游戏中的"手势"的类.

    Strategy : 表示猜拳游戏中的策略的抽象类.

    WinningStrategy : 表示Strategy的实现方法类

    ProbStrategy : 表示Strategy的实现方法类

    Player : 表示进行猜拳游戏的选手的类

    Main : 测试程序进行的类

    2.思路

    Player通过定义其Strategy是WinningStrategy类 或者是 ProbStrategy类 来决定他的策略是什么.

    3.作用

    a.在程序中可以切换不同的角色.例如在内存容量少的运行环境中科院使用 速度慢但省内存的策略,在内存容量多的运行环境中则可以使用 速度快但耗内存的策略.

    b.还可以用一个算法去盐酸另一个算法,例如用高速但计算上可能有bug的算法 去验算 低速但计算准确的算法.

  • 相关阅读:
    LeetCode-Maximum Gap
    LintCode-Implement Queue by Stacks
    LintCode-Search Range in Binary Search Tree
    LintCode-BackPack II
    LintCode-Minimum Subarray
    LintCode-Sort Letters by Case
    LintCode-Longest Common Subsequence
    POJ 2226
    POJ 2724
    POJ 3692
  • 原文地址:https://www.cnblogs.com/zhongxuan/p/7450106.html
Copyright © 2020-2023  润新知