Algorithm 设计原则vs设计模式vs算法

Algorithm 设计原则vs设计模式vs算法,algorithm,design-patterns,design-principles,Algorithm,Design Patterns,Design Principles,我是一个编程新手,我看到很多帖子都在谈论它们之间的区别。但是还没有看到一篇文章讨论设计原则、设计模式和算法之间的差异。你能给我解释一下这些有什么不同吗?我说的“设计原则”就像是任何编程的一般规则集……比如说任何软件的创建……“设计模式”也像是一般规则,但解决软件要解决的特定问题的规则……而“算法”是解决特定问题的更协调的步骤,对吗 如果你给出了否定的观点,请告诉我为什么你认为这是一个糟糕的问题。这也有帮助。简短的回答: 去看看书,研究一下主题。答案迟早会揭晓的 答案不充分,但不是那么简单: 设计

我是一个编程新手,我看到很多帖子都在谈论它们之间的区别。但是还没有看到一篇文章讨论设计原则、设计模式和算法之间的差异。你能给我解释一下这些有什么不同吗?我说的“设计原则”就像是任何编程的一般规则集……比如说任何软件的创建……“设计模式”也像是一般规则,但解决软件要解决的特定问题的规则……而“算法”是解决特定问题的更协调的步骤,对吗

如果你给出了否定的观点,请告诉我为什么你认为这是一个糟糕的问题。这也有帮助。

简短的回答: 去看看书,研究一下主题。答案迟早会揭晓的

答案不充分,但不是那么简单: 设计原则是告诉我们如何思考代码的指导原则。这些通常是一般性的,比如:在函数中构造代码以提高可读性是很好的。不同的程序员很可能会有所不同,因为我们每个人都有不同的经验,处理问题的方法也略有不同。应用设计原则的结果可能类似于“函数式编程”方法

设计模式是对最常见设计问题的解决方案进行标准化的尝试。如果你愿意的话,设计原则以表格形式给出。你可以想象,他们就像学习国际象棋的开局一样——当一名棋手说“皇后下棋”时,其他所有象棋手都会知道这意味着哪一步。不幸的是,这种方法有其局限性——设计模式在不断变化的环境中是固定的工具。因此,尽管研究它们并从中学习肯定是有用的,但它们本身很少能为现实世界的问题提供足够的解决方案。不幸的是,它们经常被当作固定的规则使用,这导致了许多编写糟糕的程序——当你有一把锤子(而且要启动的锤子很强大)时,你可能会把一切都看成钉子

算法 是最容易回答的问题:。由于定义明确,因此没有太多的解释余地。这是一本古老的食谱


总而言之:设计原则告诉我们,如何以可读、可维护、可扩展等方式实现算法。设计模式是标准化设计原则的众多尝试之一,可能会或可能不会适得其反,取决于你看待它的方式。

我认为,造成这些缺点的主要原因有两个,也许有三个:第一,问题太广泛了——你所问的每个主题都有大量的相关书籍,因此用一个问题/答案来总结它们有点过火。第二,部分答案可能是基于观点的,因为我对设计原则背后含义的理解可能与其他人不同。此外,每个人都可能会对例如设计模式的重要性赋予不同的权重。(虽然算法和设计模式都有很好的定义)最后,你要求比较一个很难比较的东西,因为它们来自不同的类别。如果我有点过火的话,你的问题类似于:物理之间的区别是什么,高中物理方程表,以及建立这些方程的方法。回答有点棘手^^:-)一条改进问题的建议:任何时候你提到其他帖子(例如,我看到很多帖子…)你都应该链接到这些帖子。展示你看过的内容,然后就这些帖子解释你不理解的内容。如果没有显示任何研究(不只是提到,而是显示),很容易假设没有研究。将鼠标悬停在downvote按钮上,您将看到这是第一个原因。