■面向过程与面向对象编程的区别

转载至:https://www.cnblogs.com/strivers/p/6681876.html

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。

如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

■面向过程与面向对象的优缺点

面向过程
  优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 
  缺点:没有面向对象易维护、易复用、易扩展

面向对象
  优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 
  缺点:性能比面向过程低

易维护:每个开发人员只需要维护自己所负则的那个类的功能字段和方法的定义和扩展就OK了。

易复用:对象与对象之间相互独立,功能与对象之前的耦合性小。

易扩展:对象的属于与方法扩展性强。

从今天开始坚持一周发三篇文章

转载于:https://www.cnblogs.com/mkl34367803/p/10630695.html

面向过程与面向对象编程的区别和优缺点相关推荐

  1. 面向过程与面向对象有什么区别

      目录   一.什么是面向过程 1.面向过程的缺点 2.面向过程的优点 补:简单介绍代码与代码之间的耦合度 二.什么是面向对象 三.面向过程与面向对象有什么区别 一.什么是面向过程 面向过程主要的特 ...

  2. 从面向过程到面向对象编程的思想转变

    项目的需求,要实现一个功能:更新表中若干行的部分列数据.Are you 明白大概要实现什么功能了吗? 嗯,我知道你明白了.那就接着往下看把. 遇到这样的问题,我相信很多人首先想到的方法是直接使用upd ...

  3. 面向过程与面向对象——编程思想的演变

    编程语言从无到有,据维基百科统计,至今为止有600多种.如此众多语言,需要逐个学习吗?实际上编程语言都是相通的,编程语言只需要精通一门即可,其他都能融会贯通.比如Java与C++就差不多,Java和C ...

  4. 面向过程和面向对象编程的优缺点

    [1]面向过程和面向对象的比较 网上发现了一篇文章,说了一下OP与OO的不同,并且打了一个比喻,通俗易懂. 有人这么形容OP和OO的不同:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的 ...

  5. 面向过程和面向对象程序设计的区别

    1.面向过程的程序设计语言 所谓面向过程是指从要解决的问题出发,围绕问题的解决过程分析问题. 面向过程的分析方法是问题的具体解决步骤,以及解决问题所需要的数据, 所以在面向过程程序设计中,重点是设计算 ...

  6. 面向过程与面向对象编程实例

    题目:要求输入两个数和运算符号,得到结果. 1. 面向过程编程 #include <iostream> using namespace std;float operationFun(flo ...

  7. 你真的知道面向过程和面向对象的区别吗?

    在面试时经常会被问到面向过程和面向对象有什么区别,虽然都是编程的一种思想,但是他们的侧重点不同,我们从以下几个方面进行简单总结. 1. 面向过程 面向过程是一种以事件为中心的编程思想,编程的时候把解决 ...

  8. 对面向过程与面向对象的一点感悟

    面向过程与面向对象的本质区别 一位计算机界的大师曾说过,"我认为,面向对象的目标从来都不是复用和扩展,而是提供一种处理复杂问题的方法". 面向过程讲究自顶向下逐步求精.找到一个系统 ...

  9. JAVA入门级教学之(面向过程和面向对象的区别)

    目录 JAVA入门级教学之(面向过程和面向对象的区别) 面向过程和面向对象的区别: -面向过程: -面向对象: -发展历程: -生命周期中包括: -什么是类: -什么是对象: -软件开发的过程: -重 ...

最新文章

  1. 用Leangoo Scrum看板工具管理OKR-目标管理
  2. 【MM】SAP委外加工服务验收产生的会计凭证
  3. 【机器视觉】 HDevelop语言基础(四)-流程控制语句
  4. leetcode 242. 有效的字母异位词
  5. SpringMVC之数据传递三Ajax与Controller交互
  6. MySQL GROUP_CONCAT长度限制引发的一场灾难
  7. 解析WAP技术(转)
  8. docker 常用指令
  9. J2EE快速入门之集合框架【01】
  10. 雷达散射截面(RCS)
  11. live2d web笔记之一:官方SDK尝试
  12. 安卓手表wear开发获取心率
  13. 华为云CDN,无忧畅享网络
  14. 戴尔R730XD服务器的不定时蓝屏研究 蓝屏错误代码 0x00000124
  15. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口
  16. JavaScript 数组之every
  17. macos系统终端命令失效
  18. python实时股票数据折线图_如何用python获取实时的股票数据?
  19. Tomcat线程池监控及线程池原理分析
  20. CCNA培训结束后的感想

热门文章

  1. 树莓派3B用Ubuntu MATE安装ros
  2. centos下安装VMware Server 虚拟机的方法
  3. 实现map window.onload加载
  4. Apache开启Gzip压缩,LAMP网页压缩
  5. MapReduce基础开发之十三FileSystem实现本地文件上传
  6. (转载)大数据与企业的数据化运营
  7. 动态代理(JDK的动态代理)
  8. AOP原理-AnnotationAwareAspectJAutoProxyCreator执行时机 || InstantiationAwareBeanPostProcessor
  9. Initiate Field Service Jobs
  10. eureka的自我保护