算法和设计模式之间有什么区别

Pet*_*ner 21 algorithm design-patterns semantics

我正在搜索"撤消/重做算法"并发现标记为重复的内容,但副本是对"撤消设计模式"的请求.我真的很喜欢这个算法.我认为我不一定需要设计模式.

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

我会挂断电话,把我的答案播出.

好吧,原谅我认为设计模式只是算法的抽象.这里有一个关于我的答案的小表,这些答案都非常好.

   Design Pattern |    Algorithm
------------------|----------------
Abstract          | Concrete
Control Structure | Set of Actions    
Template          | Implementation
Flexible          | Deterministic
Blueprint         | Recipe

Ste*_*owe 26

算法类似于配方:执行某些活动的逐步过程.

设计模式就像一个蓝图:一个结构化的对象集合,以及完成某些目标的关联和动作.


Hen*_*ryR 18

是,有一点不同.

算法是用于执行一些任务配方-明确有限的指令集实现通过对输入进行操作并产生输出一些目标.通常,算法以与语言无关的伪代码表示,然后可以使用您选择的语言实现.

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

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


dsi*_*cha 7

设计模式是如何在架构层面解决问题的相对模糊的描述,强调灵活性和可维护性.算法是如何计算特定事物的精确描述,强调正确性和效率.


Ber*_*ard 0

设计模式将决定您如何设计算法(或者可能与算法无关,但假设我们正在处理与算法相关的算法),而算法将是一组可靠的、可重复的、可实现的步骤某物。所以不,我不会称它们是可互换的。