为什么面向对象编程与过程式编程并列呢?

3
据我所理解,过程式编程是一种编程范式,其程序状态由处理数据流的过程(如子例程和数据馈送函数调用)确定,而面向对象程序则主要由对象、实例及其之间通过接口进行交互的集合状态确定。
尽管面向对象程序的数据和功能被封装并可能具有多态性,但整个程序仍被分解为较小的任务执行作为过程;数据仍由对象函数和子例程传递并加以处理。
即使在像Java这样被描述为完全面向对象的语言中,程序执行和数据流似乎也是按顺序使用函数和变量进行的。
在我看来,过程式编程中的概念仍然存在于面向对象编程中,但得到了扩展。那么为什么似乎两者相对比呢?我有什么遗漏吗?

它有助于将复杂问题分解为更小的熟悉部分。例如,在商业应用程序中,您将看到对象,如“Cart”、“CartItem”、“CheckoutManager”等。它有助于开发人员之间轻松交流:UI上未显示正确数量的购物车,也许我们在“Cart”类中有一个错误。类图将以熟悉的名称显示整个应用程序,业务分析师也能理解。它有更多的优点,但面向对象并不是过程化的替代品;只是另一种方法。 - CodingYoshi
1个回答

2
把OOP看作是在过程式编程之上的组织层。它是一种改进,旨在帮助您组织、查找和连接代码。从本质上讲,它也是过程式的。
最初的原始人程序员只有像“if(x!=0)goto y”(跳转非零,跳转等于零等)这样的控制结构,没有变量,只有“内存地址17”等。自那以后,所有东西都是为了让我们的生活更轻松而进行的渐进式改进。您不需要它们,您可以随时停下来(例如对于Shell脚本,完全的OO是过度设计,函数式更合理)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接