策略模式有哪些优点

策略模式有以下优点:1、提供了可以替换继承关系的办法;2、提供了管理相关的算法族的办法;3、可以避免使用多重条件转移语句。策略模式提供了可以替换继承关系的办法,继承可以处理多种算法或行为。

策略模式有哪些优点-Worktile社区

1、提供了可以替换继承关系的办法

策略模式提供了可以替换继承关系的办法。继承可以处理多种算法或行为。如果不是用策略模式,那么使用算法或行为的环境类就可能会有一些子类,每一个子类提供一个不同的算法或行为。但是,这样一来算法或行为的使用者就和算法或行为本身混在一起。决定使用哪一种算法或采取哪一种行为的逻辑就和算法或行为的逻辑混合在一起,从而不可能再独立演化。继承使得动态改变算法或行为变得不可能。

2、提供了管理相关的算法族的办法

策略模式提供了管理相关的算法族的办法。策略类的等级结构定义了一个算法或行为族。恰当使用继承可以把公共的代码移到父类里面,从而避免重复的代码。

3、可以避免使用多重条件转移语句

使用策略模式可以避免使用多重条件转移语句。多重转移语句不易维护,它把采取哪一种算法或采取哪一种行为的逻辑与算法或行为的逻辑混合在一起,统统列在一个多重转移语句里面,比使用继承的办法还要原始和落后。

延伸阅读:

什么是策略模式

策略模式是指有一定行动内容的相对稳定的策略名称。策略模式在古代中又称“计策”,简称“计”,如《汉书·高帝纪上》:“汉王从其计”。这里的“计”指的就是计谋、策略。策略模式具有相对稳定的形式,如“避实就虚”、“出奇制胜”等。一定的策略模式,既可应用于战略决策,也可应用于战术决策;既可实施于大系统的全局性行动,也可实施于大系统的局部性行动。

策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。

文章标题:策略模式有哪些优点,发布者:小编,转载请注明出处:https://worktile.com/kb/p/35638

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年1月15日 下午9:36
下一篇 2023年1月15日 下午9:38

相关推荐

  • 神仙低代码开发平台推荐!

    低代码平台已成为开发人员简化和加快编码过程的日益流行的工具。它的出现减少了企业完成应用程序开发所需的时间和成本,越来越多的企业正在转向低码平台,以加快开发进程并释放他们的创造力。

    2023年7月27日
    26400
  • 关于深度学习中目标跟踪算法和目标检测算法的关键区别是什么

    关于深度学习中目标跟踪算法和目标检测算法的关键区别是:1、任务定义;2、数据输入;3、输出结果;4、算法实现。目标跟踪算法的主要任务是在视频序列中实时跟踪一个预定义的目标。目标检测算法的任务是在图像或视频中检测出多个不同类别的目标,并标记出它们的位置。 一、任务定义 目标跟踪算法的主要任务是在视频序…

    2023年7月30日
    66000
  • 云服务在物联网(IoT)中的应用

    开展云服务在物联网(IoT)领域的应用探讨,云服务为物联网带来数据处理和分析能力的提升以及强化设备管理及互联互通两大关键贡献尤为重要。第一,云服务提供了海量数据存储,实现设备数据安全持久保存。第二,通过强悍运算能力,云服务支撑对数据作出即时分析,从而为决策制定提供智慧。以此展开,云服务使得物联网应用…

    2023年12月25日
    23100
  • oa系统怎么销假

    销假流程一般包括向领导和人力资源部门报告归来、提交休假期间的相关证明材料(如医疗证明)、更新系统状态、以及进行后续工作的衔接等步骤。在OA系统中,销假通常涉及以下步骤:1、登录系统,使用个人账号进入OA系统;2、找到请假申请模块,选取相对应的销假功能;3、填写销假信息,包括销假时间、休假期间的相关情…

    2024年1月11日
    42300
  • 协同办公平台系统oa

    协同办公平台系统(Office Automation, OA)增进工作效率、优化流程管理、加强协作交流、提供数据安全保障、支持移动办公。具体来讲,在增进工作效率方面,OA系统通过自动化办公流程,大幅缩减了文件处理时间,允许员工快速响应工作请求,确保了业务流转的连续性与效率。 一、提高工作效率 协同办…

    2024年1月15日
    23700
  • 关于golang并发编程的问题,运用chan反而比较慢是为什么

    Golang是一门非常流行的编程语言,它的并发编程能力是其最大的特点之一。本文将详细讲解Golang的并发编程问题,并探讨为什么运用chan反而会比较慢。 Golang并发编程基础 Golang中的并发编程是通过goroutine和channel实现的。goroutine是轻量级的线程,可以在一个单…

    2023年3月2日
    66400
  • 如何在团队中推广进度管理意识

    践行项目进度管理对于确保团队目标的高效完成具有决定性作用。在团队之中传递这种意识,需从几个方面进行着手:1、明确项目里程碑;2、制定进度计划;3、实施监控与控制机制;4、倡导沟通与透明度;5、提供培训与教育资源;6、建立奖励与激励体系。 尤其对于制定进度计划环节,详细的计划书是提高进度管理效率及成员…

    2023年12月26日
    22000
  • 云原生应用开发的关键挑战是什么

    云原生应用开发的关键挑战包括1、保障数据一致性、2、微服务架构复杂性、3、容器化与编排难题、4、安全与合规要求、5、技术选型与人才匮乏。微服务架构的复杂性尤其突出,由于应用被分解成独立服务部署,开发者需在服务间确保高性能通信与精确的数据同步,同时对故障和延迟反应要快速。此外,微服务增加了监控与调试的…

    2023年12月28日
    18700
  • devops的开发需要做什么

    开展DevOps开发围绕确保软件交付的速度与质量,使开发与运维间的壁垒得以打破。十分关键的步骤包含1、编制自动化测试脚本、2、建立持续集成/持续部署(CI/CD)流程、3、使用基础设施即代码(IaC)管理云资源、4、实践微服务架构以及容器化、5、进行持续监控与优化、6、构建反馈文化与协作机制。特别指…

    2024年3月26日
    1900
  • 电子政务系统oa

    电子政务系统(Office Automation, OA)是利用计算机软件、硬件及网络资源,提高政务工作效率、促进信息共享的一套系统。主要功能包括:1、文档管理、2、工作流程自动化、3、通讯联络协助、4、数据分析处理。特别是在文档管理方面,电子政务系统通过数字化、归档和检索技术,极大提升了文档处理的…

    2024年1月15日
    14800

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部