面向对象的设计方法与传统的面向过程的方法

 时间:2024-10-15 19:24:34

1、面向对象的程序设计任何一个对象都具有两个要素:属性(attribute)和行为(behavior)。对象就是由一组属性和一组行为构成的。在设计复杂的软件系统时,其首要的问题是确定该系统是由哪些对象组成的,并且设计这些对象。在C++语言中,每个对象都由数据和函数(即操作代码)两部分组成。我们可以对一个对象进行封装处理,把它的一部分属性和行为对外界屏蔽,使用对象的人完全不必知道对象内部的具体细节,只需了解其外部功能即可自如地操作对象,这样把对象的内部实现和外部行为分隔开来。每个对象都属于一个特定的类型。在C++语言中对象的类型称为类(class)。类代表了某一批对象的共性和特征。类是对象的抽象,而对象是类的具体实例(instance)。下图就是定义的一个类,封装了一些属性(一般用变量表示)和行为(通常用函数实现)。

面向对象的设计方法与传统的面向过程的方法

2、传蕙蝤叼翕统的面向过程的程序设计面向过程的程序设计也称结构化程序设计,它和面向对象的程序设计是相对的。其基本思想是自顶向下、逐步求精,即将复杂的大问题层层分解为许多简单的小过程的组合,每个小过程一般用功能函数实现的,面向过程的程序设计归根到底考虑的就是如何将整个程序分成一个个功能函数,函数之间如何调用,以及每个函数内部将如何实现。下图所示是一个函数调用的示意图。随着程序规模的增大,大量函数之间的调用错综复杂,一般存在如下问题:(1)面向过程的程序设计不利于理解和查错面向过程的程序设计需要使用一些全局变量来存储数据。这些全局变量经常会被很多函数访问或修改,尤其是程序规模庞大的情况下,程序中可能有成千上万个函数和全局变量,函数之间的调用关系及哪些函数会访问哪些全局变量就变得错综复杂,降低了程序可读性,也不容易发现程序的错误。(2)面向过程的程序设计不利于修改和扩充新功能面向过程的程序设计访问可以直接访问某个变量。当该变量的定义变化时,就要修改所有访问该变量的语句,这些语句分散在上百个函数之中,找到这些语句费时费力。(3)面向过程的程序设计不利于代码的重用。编写程序时,发现某项功能在现有的某个程序中已经有了相同或类似的实现,将那部分源代码抽取出来在新程序中使用,被称作代码的重用。面向过程的程序设计随着程序规模的增大,函数和变量之间的关系错综复杂,要抽取可重用的代码十分困难。总之,传统的面向过程的程序设计在规模庞大时,就变得难以理解和查错,难以修改和扩充,难以重用。

面向对象的设计方法与传统的面向过程的方法

3、两者的区别和对比:(1)设计思路不同传统的面向过程的程序设计是围绕过程和功熹栳缂靖能进行的,用一个函数实现一个功能或过程。所有的数据都是公用的,一个函数可以使用任何一组数据,而一组数据又能被多个函剞麽苍足数所使用。程序设计者必须考虑每一个细节,什么时候对什么数据进行操作 。面向对象程序设计采取的是另一种思路。它面对的是一个个对象。实际上,每一组数据都是有特定的用途的,是某种操作的对象。也就是说,一组操作调用一组数据。程序设计者的任务包括两个方面:一是设计所需的各种类和对象,即决定把哪些属性和行为封装在一起;二是考虑怎样向有关对象发送消息,以完成所需的任务。(2)本质结构不同面向过程的程序设计,程序=数据结构+算法数据结构对应变量,算法对应函数,算法是用来操作数据结构的。算法和数据结构是分离的,没有直观的手段能够说明一个算法操作了哪些数据结构,一个数据结构又是由哪些算法来操作的。当数据结构的设计发生变化时,分散在整个程序各处的、所有操作该数据结构的算法都需要进行修改。面向对象的程序设计,对象=数据结构+算法 程序=(对象+对象+对象+……)+ 消息消息的作用就是对对象进行控制。面向对象的程序设计的关键是设计好每一个对象以及确定向这些对象发出的命令,使各对象完成相应的操作。

  • vscode怎样打开终端 使用命令行
  • VB如何设置外接程序管理
  • 在pycharm上完成基于opencv的图片目标识别
  • DW网页教程基础篇-网页怎么做成的浅解
  • php怎么连接数据库
  • 热门搜索
    防火手抄报简单又漂亮 天下国家手抄报 卫生与健康手抄报 放飞梦想手抄报 禁毒手抄报图片 清明手抄报图片 我爱我家手抄报 关于疫情的手抄报 网络安全手抄报内容 溺水手抄报