面向对象和动态编程之间的区别是什么?

时间:2014-03-27 13:40:57

标签: oop dynamic-programming paradigms

我知道动态编程是指我们倾向于将复杂问题分解为更小的部分的方法。换句话说,它是一种分而治之的范式。面向对象编程还使用类和模块的概念,因此遵循关注点分离(SoC)原则。那么我们可以说OO是动态编程的一个例子吗?

注意:动态此处并不意味着动态类型或动态脚本语言。它指的是general approach

2 个答案:

答案 0 :(得分:3)

动态规划是一种算法设计方法。

面向对象编程更像是一种代码组织方法。

比较它们就像比较千米和千克。

(线性编程也是一个完全不同的东西。它用于优化复杂的线性方程。它比数学编程更多。而整数编程就是它的一个特例。)

答案 1 :(得分:1)

据我可以从维基百科文章的前几段推断,动态编程是关于识别已经解决的子问题以减少运行时间,这当然需要将问题分解为更小的问题,但重点是这“在运行时发生”:你不是在寻找可以通过相同方法解决的问题,而是在寻找具有相同解决方案的等效问题。

OOP或其他编程范例是关于使用相同的算法识别可以以相同方式解决的问题。动态编程不是范例,它不会告诉您如何构建程序。它告诉您如何指定算法,以便它可以利用子问题的解决方案。