【发布时间】:2019-02-16 08:24:09
【问题描述】:
据我了解,过程式编程是一种编程范式,其中程序的状态由处理数据流的过程决定,例如子例程和数据馈送函数调用,而 面向对象程序很大程度上取决于其对象、实例的集体状态以及它们之间通过接口进行的交互。
尽管面向对象程序的数据和功能被封装并且可能是多态的,但整个程序仍然作为一个分解成更小的任务的过程来执行;数据仍然被对象函数和子程序传递和操作。
即使在像 Java 这样的语言(被描述为完全 OO)中,程序执行和数据流似乎也是按顺序发生的,并且使用函数和变量。
在我看来,过程式编程中的概念仍然存在于 OOP 中,但被扩展了,那么为什么看起来两者似乎是对比的呢?我错过了什么吗?
【问题讨论】:
-
它有助于将复杂问题分解为更小的熟悉部分。例如,在商务应用程序中,您会看到
Cart、CartItem、CheckoutManager等对象。它有助于开发人员轻松地相互交流:购物车在 UI 上未显示正确的数量,可能我们在Cart类中有一个错误。类图将以 BA 也能理解的熟悉名称显示整个应用程序。它有更多的优势,但 OO 不是程序化的替代品;只是另一种方法。
标签: oop paradigms procedural-programming