gpt4 book ai didi

design-patterns - "Chain of responsibility"和 "Strategy"模式有什么区别?

转载 作者:行者123 更新时间:2023-12-03 22:55:55 25 4
gpt4 key购买 nike

我提出这个问题是因为 another question几天前我在这里问过。
我必须解决一个特定问题,在收到两次回复后,我意识到两种模式可以帮助解决该问题(以及任何其他类似问题)。

  • 责任链
  • 战略

  • 我的问题是:

    这些模式之间究竟有什么区别?

    最佳答案

    他们非常不同。

    战略 是关于拥有一个通用接口(interface),您可以使用它来提供算法的不同实现,或者具有一些共同依赖关系的几种算法或逻辑片段。

    例如,您的 CollectionSorter可以支持 SortingStrategy (合并排序、快速排序、冒泡排序)。它们都有相同的界面和目的,但可以做不同的事情。

    在某些情况下,您可能会决定在内部确定策略。也许分拣机有一些基于集合大小等的启发式方法。大多数时候它确实是从外部注入(inject)的。这是该模式真正闪耀的时候:它为用户提供了覆盖(或提供)行为的能力。

    这种模式是现在无处不在的 的基础。控制反转 .一旦你完成了经典模式,接下来研究一下。

    责任链是关于拥有一个通常从更详细到更通用的对象链。链中的每个部分都可以提供答案,但它们具有不同的详细程度。

    流行的 GOF 示例是上下文帮助系统。当您单击桌面应用程序中的组件时,会显示哪些帮助?链中的第一项可以为您单击的组件寻求帮助。 Next in chain 可以尝试显示整个包含对话框的帮助。接下来是应用程序模块......等等。

    看起来您还没有,但应该阅读 GOF“设计模式”经典。

    关于design-patterns - "Chain of responsibility"和 "Strategy"模式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5039024/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com