Closed. This question needs to be more
focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注
editing this post一个问题。
2年前关闭。
Improve this question
软件开发模式有什么区别?
诸如敏捷DSDM之类的方法论OO如何被分类为一种方法论和范式?
如果面向对象本身是一种方法,那么如何将其应用于诸如敏捷之类的方法呢?
范式与方法论或开发模式之间有何区别?
感谢您的任何答复。
只看您问的一个问题:“... OO如何被分类为方法论和范式?”
至少,有一个相当简单的答案:
面向对象设计是一种分析方法。 面向对象编程是一种实现范例。 OOD涉及根据对象及其相互作用来分析问题。 OOP涉及将解决方案实现为一组交互对象。
“敏捷”(我讨厌这个名字-尽管我承认“极限编程”更糟糕)实际上是关于项目管理的。举例来说,您可以将成对编程大致同样地应用于汇编语言或C语言,或显式支持面向对象编程的语言(尽管这是一个相对较新的想法,但它可能经常与相对较新的语言结合使用)。
编辑:我如何将“方法论”与“范式”区分开是非常简单的(至少在理论上如此)。
范式实际上只是“示例”的花哨词。如果我在很大程度上遵循该示例,则该程序的源代码(例如)应包含遵循该示例的直接((相当))明确定义的结果。就显而易见的一个而言,从另一个公共(public)继承的类将很明显地表示OOP。
相比之下,一种方法论并不一定会在源代码中显示出直接的,可定义的结果。仅举例来说,源代码中几乎没有什么内容可以表明它是否是使用“敏捷”方法开发的。我也许可以猜测是否(例如)所有源代码文件都包含表明两位作者的注释,但是(至多)它只能间接表示该方法论的一个特定部分。
我说的是理论上的,因为事情有时会变得有些“模糊”。如果我尽力而为,即使使用Smalltalk之类的语言几乎完全偏爱对象的语言,我也可能会写出非常接近纯过程代码的代码。同样,如果我尽力而为,我可以用不真正支持它的C语言编写OO代码。在这种情况下,遵循范例的指示通常比更直接的情况下更难找到或定义。