【问题标题】:Why is OOP juxaposed with Procedural Programming?为什么 OOP 与过程式编程并列?
【发布时间】:2019-02-16 08:24:09
【问题描述】:

据我了解,过程式编程是一种编程范式,其中程序的状态由处理数据流的过程决定,例如子例程和数据馈送函数调用,而 面向对象程序很大程度上取决于其对象、实例的集体状态以及它们之间通过接口进行的交互。

尽管面向对象程序的数据和功能被封装并且可能是多态的,但整个程序仍然作为一个分解成更小的任务的过程来执行;数据仍然被对象函数和子程序传递和操作。

即使在像 Java 这样的语言(被描述为完全 OO)中,程序执行和数据流似乎也是按顺序发生的,并且使用函数和变量。

在我看来,过程式编程中的概念仍然存在于 OOP 中,但被扩展了,那么为什么看起来两者似乎是对比的呢?我错过了什么吗?

【问题讨论】:

  • 它有助于将复杂问题分解为更小的熟悉部分。例如,在商务应用程序中,您会看到 CartCartItemCheckoutManager 等对象。它有助于开发人员轻松地相互交流:购物车在 UI 上未显示正确的数量,可能我们在Cart 类中有一个错误。类图将以 BA 也能理解的熟悉名称显示整个应用程序。它有更多的优势,但 OO 不是程序化的替代品;只是另一种方法。

标签: oop paradigms procedural-programming


【解决方案1】:

将 OOP 视为程序之上的组织层。这是一种改进的演变,旨在帮助您组织、查找和连接您的代码。它的核心也是程序性的。

第一批穴居人程序员编写时没有控制结构,除了“if(x!=0)goto y”(跳转非零、跳转 eq 零等)之外没有任何变量,除了“内存地址 17”,从那时起的一切一直在逐步改进,以使我们的生活更轻松。你不需要它们,你可以随时停下来(比如对于 shell 脚本,完整的 OO 是一种矫枉过正,功能是有意义的)

【讨论】:

    猜你喜欢
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2011-05-06
    相关资源
    最近更新 更多