程序员的讨论:面向过程 vs. 面向对象

作者:Chad Columbus

我已经编写了超过 15 年的各种代码(主要是 Perl),但仍然有一件事我不明白……面向对象编程 (OOP) 相对于面向过程编程 (PP) 的优势是什么?

我想就这个话题进行公开讨论。显然,我同时使用 OOP 和 PP,但我强烈支持 PP。我想知道“我是否错过了什么”?我听说 Perl 6 将具有非常强大的 OOP,甚至可能完全是 OOP,所以如果 Larry Wall(比我聪明得多)认为这是一个好主意,那我一定错过了什么。

这是我的简化观点,我发现 OOP 更难阅读、更难维护和更难使用。PP 看起来非常直观和直接。我发现我可以阅读和理解大多数 PP 代码,几乎不需要注释或文档,代码就是代码,你可以看到它在做什么(它主要是自文档化的)。在 OOP 中,我发现我一直在试图弄清楚它在做什么,它看起来更... 模糊。我通常需要四处跳转;它不像 PP 那样,您主要从上到下阅读。

告诉我你的想法,帮助我扩展我的知识。我不是要推广或抨击任何一种方法,我正在努力学习,我希望你们都能以同样的精神回应。当您回复时,请告诉我们您支持哪一方。

该主题的一些可能的讨论点

OOP 能做什么 PP 不能做的事?或者 PP 能做什么 OPP 不能做的事?

OOP 比 PP 有什么优势?或者反过来?

OPP/PP 的性能优势?

可维护性?

可重用性?

可读性?

加载 Disqus 评论