OOP与过程化程序设计技术对比 - 极悦
首页 课程 师资 教程 报名

OOP与过程化程序设计技术对比

  • 2020-09-23 16:57:52
  • 899次 极悦

OOP是面向对象程序设计的英文简称,在前面我们已经学习过OOP的相关知识概述,相信大家对java中的面向对象程序设计有了一定的认识和了解。这篇文章来介绍OOP与过程化程序设计技术对比,这样会更明白为什么说OOP在java编程中尤为重要。

我们用OOP与朋友们也许更熟悉的过程式模型的对比,在过程化程序设计中,首先需要确定要完成什么任务,然后:(1)使用逐步求精的处理过程:将要完成的任务分解成若干个子任务,子任务再分解成更小的子任务,直到子任务小到可以直接实现为止(这是自顶向下的方法)。(2)编写求解简单任务的过程,并将它们组装成更加复杂的过程,直到完成需要实现的功能为止(这是自底向上的方法)。

当然,大多数程序员使用自顶向下与自底向上相结合的策略来解决程序设计的问题。在过程化程序设计中,确定过程的手段与OPP中确定方法的方式基本一样,即查看问题描述中的动词或者动作。而在OOP 中的最重要区别是首先从项目中分离出来,然后再找出这个类中需要定义哪些方法。除此之外,传统的过程和OOP方法的另一个主要区别是:在OOP中,每个方法都与负责执行这个操作的类相关联。

在OOP与过程化程序设计技术对比中,要知道对于规模较小的问题,使用过程化程序设计方法比较合适。但是,对于规模较大的问题,使用类和方法将会带来两点好处。一是类提供了一种便于将众多的方法聚集在一起的机制。要想实现一个简单的Web浏览器可能需要2000个过程,而可能只需要100个类,每个类平均20个方法。对于java程序员来说,后者结构更易于驾驭,也更易于在开发团队中分配任务。二是类的封装机制将有助于对其他的类方法隐藏数据表示。如下OOP与过程化程序设计技术对比图:

image.png

这意味着如果出现了搞乱数据的bug,就在访问这些数据的20个方法中检查错误,这样做总会比从2000个过程中查找错误要容易得多。

也许有人会说:这与模块化设计没有太大的区别。我们过去可能编写过这样的程序:将程序划分成模块,模块之间通过相互调用,而不是共享数据进行通信。这种做法(如果做得很好的话)也可以达到java封装的目的。但是,在许多程序设计语言中,哪怕是编写程序中出现的很小失误也有可能导致对另一模块中的数据进行操作,这将很容易使得封装性遭到破坏。

还有一个更严峻的问题,类可以拥有相同行为的多个对象,但我们却不能得到某个模块的多个拷贝。假定有一个模块封装了一组订单,以及一个能够快速访问的平衡二叉树模块。现在,有可能发现实际需要两个订单集合,一个用于表示未处理的订单,一个用于表示已处理的订单。我们无法让订单树模块实现两次链接,也不希望为链接操作建立一个副本,并为链接重新命名所有的过程。类没有这样的限制。一旦定义了类,就可以轻松地构造该类的任意多个实例(而模块只能有一个实例)。

Java语言是完全面向对象的,必须熟悉OOP才能够编写java程序,相信大家通过这篇文章中OOP与过程化程序设计技术对比的介绍,可以对OOP有更深的理解,再通过java视频教程的方式来学习更多java编程的知识。


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交