Algorithm 什么';算法和设计模式之间的区别是什么

Algorithm 什么';算法和设计模式之间的区别是什么,algorithm,design-patterns,semantics,Algorithm,Design Patterns,Semantics,我在搜索“撤销/重做算法”,发现了一些标记为重复的内容,但该重复内容是对“撤销设计模式”的请求。我真的想要一个算法。我不认为我需要一个设计模式 “设计模式”和“算法”之间有根本区别吗?或者有人可以互换使用这两者吗 我挂断电话,把我的答案从广播中删除 好的,请原谅我认为设计模式只是算法的抽象。下面是一个小表格,列出了我从答案中得到的一些发现,这些答案都很好 Design Pattern | Algorithm ------------------|---------------- Abstr

我在搜索“撤销/重做算法”,发现了一些标记为重复的内容,但该重复内容是对“撤销设计模式”的请求。我真的想要一个算法。我不认为我需要一个设计模式

“设计模式”和“算法”之间有根本区别吗?或者有人可以互换使用这两者吗

我挂断电话,把我的答案从广播中删除

好的,请原谅我认为设计模式只是算法的抽象。下面是一个小表格,列出了我从答案中得到的一些发现,这些答案都很好

Design Pattern | Algorithm ------------------|---------------- Abstract | Concrete Control Structure | Set of Actions Template | Implementation Flexible | Deterministic Blueprint | Recipe 设计模式|算法 ------------------|---------------- 抽象|具体 控制结构|动作集 模板|实现 柔性|确定性 蓝图|配方
设计模式将决定您如何设计算法(或者可能与算法无关,但假设我们正在处理一个与算法相关的算法),而算法将是一组坚实的、可重复的、可实现的步骤。因此,不,我不会称它们为可交换的。

算法就像一个配方:一个执行某些活动的逐步过程


设计模式就像一个蓝图:一个对象、关联和行动的结构化集合,以实现某个目标。

设计模式是一个相对模糊的描述,它描述了如何在体系结构级别解决问题,强调灵活性和可维护性。算法是对如何计算特定事物的精确描述,强调正确性和效率。

我想说,设计模式定义结构,而算法定义行为


例如,您可以结合使用几种不同的算法。

设计模式不能直接转换为代码。这是一种对应用程序设计有用的“策略”。这个术语的起源不属于计算机科学。阅读了解更多信息


另一侧的算法可以用代码表示。这是一系列操作,用于解决任何输入的特定问题。

是的,存在差异

算法是执行某项任务的一种方法——一组明确的有限指令集,通过对输入进行操作并产生输出来实现某个目标。通常情况下,算法用与语言无关的伪代码表示,然后可以用您选择的语言实现

设计模式是一种结构化代码的方法,以优雅地表达功能组件之间的关系。您可以在算法的实现中使用设计模式。例如,可以使用树的顺序遍历算法来确保以特定顺序访问树数据结构的所有节点。您还可以实现访问者设计模式,以表示您的实现如何将控制权返回到调用上下文,以指示节点已被访问。这不是算法的一部分,而是软件设计的一部分,以及如何构造软件的每个组件可以使用的接口


算法和设计模式是正交的,尽管它们很可能同时使用。

算法是执行任务的一组特定步骤。解码音频或视频文件将使用算法

设计模式更像是设计具有特定特征的系统的模板。

它们不同:vs

使用命令设计模式(),很容易实现撤消/重做:


相关问题:

算法是一组步骤/动作/命令/指令,它们在所有情况或状态变化中以指定的顺序/方式工作。在撤销/重做的情况下,需要在每个连接点存储以前的状态,然后(通过应用程序拥有的任何方式)按命令重新生成。但是由于这个定义是如此模糊,而且每个特定的情况都不同,我们喜欢创建一个更通用的设计模式,其中可以插入特定应用程序的功能

在软件工程中,设计模式是软件设计中常见问题的通用可重复解决方案。设计模式不是可以直接转换为代码的成品设计。它是一个描述或模板,用于说明如何解决可用于许多不同情况的问题--

克里斯托弗·亚历山大(Christopher Alexander)是一位建筑师,他首先研究了建筑和社区中的模式,并开发了一种生成模式的“模式语言”

每种模式都描述了一个在我们的环境中反复出现的问题,然后描述了该问题解决方案的核心,这样您就可以多次使用该解决方案,而不必以同样的方式重复两次--克里斯托弗·亚历山大


因此,这些术语是不可互换的,因为它们指的是不同的设计层次。

当我第一次研究设计模式概念时,我也很惊讶为什么设计模式是在存在算法的情况下引入的。由于我的知识随着设计模式的增加而不断增长,我在这一点上得出结论,算法是解决问题的完全不同的方法,而设计模式是不同的


设计模式基本上是软件应用程序在特定上下文中的同一问题的循环解决方案,该特定上下文与algo无关,因为算法是解决问题的分步指令

如何组织功能类型,而不是具体功能,可能是区分“设计模式”和“算法”的关键

设计模式描述常见设计问题的通用解决方案。 “每个模式描述