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

    一、定义

    策略模式(Strategy Pattern)

    针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。

    二、分析

    • 策略模式主要针对的是一组可以相互替换的算法,我们单独把这些算法封装起来,让他们实现同一个接口,在使用策略时传入实现的接口类,这样我们删除和添加策略时就不用修改到客户端。

    • 在策略模式中,策略是由客户端决定的,这要求这些可以替换的策略必须是公开的,客户端也需要知道具体有哪些策略。

    • 策略模式和状态模式原理一致,只是他们的注重点不同,状态模式主要是切换状态以达到执行不同的行为,而策略模式则是针对一组可以替换的算法。

    • 如果在一个类中,某个行为存在多种实现的方式,并且这些方式可以相互替换,这时我们就可以使用策略模式。

    三、类图

    策略模式类图

    四、使用场景

    • 系统需要动态的在几种算法中选择一种;

    • 类中使用了复杂条件运算符以在同一算法的不同变体中切换;

    • 如果算法在上下文的逻辑中不是特别重要,使用该模式能将类的业务逻辑与其算法实现细节隔离开来。

    五、代码实现

    我们在买房时需要在进行贷款,银行一般有2种还款方式分别是 等额本息等额本金 ,我们可以根据实际需求选择还款的方法。

    下面我们使用策略模式来模拟这两种还款方式。

    源码:gitee地址(点击跳转)

    原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。
  • 相关阅读:
    2021 Duilib最新入门教程(二)Duilib编译动态库
    2021 Duilib最新入门教程(一)Duilib简介
    webgl图库选型
    CUDA编程学习记录
    C++时间戳获取
    FFMPEG编译问题记录
    程序员的35岁
    Linux发行版及其目标用户
    服务器关机或重启
    Linux下找出吃内存的方法总结
  • 原文地址:https://www.cnblogs.com/lixingwu/p/14412988.html
Copyright © 2011-2022 走看看