page contents

C++——面向过程程序设计与面向对象程序设计的优缺点

结构化程序设计与面向对象程序设计的优缺点。
一、面向过程:“从上往下”的面向过程的程序设计
用面向过程的方式解决问题的思路:提出问题,分析问题的处理流程,将大问题分解成小问题,如果小问题比较复杂,那么就继续的分解为更小的问题,然后解决这些一个一个的小问题来解决大问题(调用函数),最后解决所有的问题。这个从问题出发,从上往下的解决过程,一步一步的解决问题,这种开发思路我们称之为面向过程的设计思想,因为他主要是解决问题中的一个个的过程,而且它也比较符合哦我们解决问题的方法(做好这一步,做下一步,直到做完所有)。
优点:
  1、程序结构简单,仅由三种基本结构组成,即顺序,选择,循环这个三种基本结构,我们就可以解决任何问题,所以对于面向过程要专注于逻辑的时间,不需要学习、记忆更多的语法,结构。
  2、把大问题分成小问题,然后逐个解决小问题,这样大问题就解决了。面向过程的思路就是把项目分成很多个小项目,完成这些小项目之后,按照业务流程把他们组合起来,这样就整个问题解决,这个符号人们一般解决问题的思路,这里也容易掌握,通过分解问题,降低了问题的难度,是程序变得简单和维护,另外那些个单独的小项目(函数)可以重复的使用,可以避免重复写代码。
  3、自上往下,一步一步的完善,也就是先从整体的角度看代问题,然后列出解决问题需要做那些步骤,然后逐步的去完善,这样会让我们全面的考虑问题,是逻辑关系清楚明了。考虑问题我们是先“这个问题要怎么解决”,这里就变成了“先做什么,然后再做什么”,这样我们的过程就更清楚了
  缺点:
在面向过程的时候,数据和操作往往是分离的,这样如果是数据的结构有改变,那么操作数据的函数就不得不重新写,这个代价就比较大,并且数据一般都是不觉有封装性的,很多变量都会暴露出来,这里又可能会被篡改。

二、面向对象:万物皆对象
面向对象的程序设计是面向过程的继承和发展,程序对现实世界的抽象和描述,现实中的基本单元的物体,程序中的基本的单元就是对象,
面向对象可以理解为:现实世界是由对象组成的,无论大小。
对象由两个部分组成:
    1、描述对象的状态或者属性的数据(变量)
    2、描述对象的行为或者功能的方法(函数)
面向对象是将数据和操作数据的函数结合在一起,共同的来描述现实世界,这个就是面向对象和过程本质上的区别。
之前提到面型过程的缺点,即面向过程中数据和操作是分离的,当问题规模比较小时,需求变化不大的时候,面向过程工作都做的很好。 但是,当问题的规模越来越大、越来越复杂时,面向过程就显得力不从心了,即修改了某个结构体,就不得不修改与之相关的所有过程函数,而一个过程函数的修改,往往又会设计到其他数据结构,在规模比较小的时候容易解决,但是当程序规模越来越大时,特别是涉及到了多人协作开发,这就麻烦 正是如此,面向对象的程序设计应运而生,它的主要特点是封装、继承和多态。封装即将数据和操作封装在一起,并避免了局部变量的暴露,而只提供接口;继承可以在原来的基础上很快的产生新的对象;多态是同一个方法调用,针对不同的对象有不同的反应,这方便了程序的设计。
容易设计和实现
  面向对象思想所应用的封装、继承、多态都是符合日常的思维习惯的,所以使用面向对象思想设计的程序结构清晰、更容易设计和实现。  
  面向对象思想的继承和多态,强调了程序设计和代码的重用,这在设计新程序的时候,可以最大限度地重用已有的设计和代码,使得程序能够满足新的业务需求并具有较高的质量。
容易扩展
  利用面向对象思想的封装、继承和多态,可以设计出“高内聚、低耦合”的程序结构,可以让程序更加灵活、更容易扩展,从而轻松应对软件的扩展需求,降低维护成本。
高内聚,低耦合。 这是软件工程中的一个概念,通常用来判断一个软件设计的好坏。所谓的高内聚是指一个软件模块是由相关性很强的代码组成,只负责某单一任务,也就是常说的“单一责任原则”。而低耦合指的是在一个完整的程序中,模块与程序之间,尽可能保持相互独立,即每个模块尽可能独立完成特定的子功能,模块与模块之间的接口,尽可能的少而简单。
类:数据(变量)和行为(函数)的封装
  • 发表于 2021-05-28 18:59
  • 阅读 ( 1056 )
  • 分类:C/C++开发

0 条评论

请先 登录 后评论
小威
小威

64 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章