软件开发模式有什么区别?
敏捷DSDM等方法如何将OO归类为方法论和范式?
如果本身是一种方法论,如何将OO应用于敏捷等方法?
范式与方法或发展模式之间的区别是什么?
感谢您的回复。
答案 0 :(得分:3)
“当我用一个词时,”Humpty Dumpty 用一种相当鄙视的语气说,“它 意味着我选择它的意思 - 既不多也不少。“”问题 是,“爱丽丝说,”你能否做到 单词意味着很多不同的东西。“ “问题是,”Humpty Dumpty说, “这就是主人 - 这就是全部。”
通过镜子。
好吧,不是我的回答,刘易斯卡罗尔的。
答案 1 :(得分:2)
方法论是关于人的。范式是关于软件的。
答案 2 :(得分:2)
仅查看您提出的一个问题:“...... OO如何被归类为方法论和范式?”
至少,这有一个相当简单的答案:
OOD涉及根据对象及其交互来分析问题。 OOP涉及将解决方案实现为一组交互对象。
“敏捷”(我讨厌这个名字 - 尽管我承认“极限编程”更糟糕)实际上是关于项目管理。例如,您可以将配对编程同样地应用于汇编语言或C语言,而不是明确支持面向对象编程的语言(尽管这是一个相对较新的概念,它可能最常用于相对较新的语言)。 / p>
编辑:我如何将“方法论”与“范式”分开是相当简单的(至少在理论上)。
Paradigm对于“例子”来说真的只是一个奇特的词。如果我将该示例关注到一个有意义的程度,那么程序的源代码(例如)应包含遵循该示例的直接(公平)明确定义的结果。只是为了显而易见的一个,从另一个公开派生的类将是一个非常明显的OOP指示。
相比之下,方法不一定在源代码中显示直接的,可定义的结果。例如,源代码中不太可能表明它是否是使用“敏捷”方法开发的。如果(例如)所有源代码文件都包含指示两位作者的注释,我可能会猜测一下,但是(充其量)它会对该方法的一个特定部分进行相当间接的指示。我在理论上说,因为事情有时会变得有点“模糊”。如果我努力学习,我可能会写得非常接近纯粹的程序代码,即使是像Smalltalk这样几乎完全支持对象的语言。同样,如果我努力尝试,我可以在C语言中编写OO代码,而不是真正支持它。在这种情况下,遵循范式的指示通常比在更直接的情况下更难找到或定义。
答案 3 :(得分:1)
范式是一种思考问题的方式 - 所以对象,关系数据库,lambda演算都是将问题引入脑中的模型
方法论是一种基于范式实际构建某种东西的方法。
如果你愿意,范式是建筑师,正在建设什么?它应该是一座吊桥还是一座拱门。该方法是工程,有多少电缆,有多厚,哪些分包商。