面向对象与面向程序的区别与优缺点

面向对象以 数据(属性)为导向,将具备相同一个或者多个属性的物体抽象为“类”,将他们包装起来;而有了这些数据(属性)以后,咱们再考虑他们的行为(对这些属性进行什么样的操做),
面向过程以 功能(行为)为导向,按模块化的设计,在你在脑壳中也许也有一个相似“类”的概念,可是表现出来的是属性与行为的分离。
面向过程
定义
面向过程是一种以过程为中心的编程思想,它是一种基础的顺序的思惟方式,面向对象方法的基础实现中也包含面向过程思想。面向过程就是分析出解决问题所须要的步骤,而后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就能够了。编程

特性:模块化 流程化模块化

优势:性能比面向对象高,由于类调用时须要实例化,开销比较大,比较消耗资源;好比单片机、嵌入式开发、Linux/Unix等通常采用面向过程开 发,性能是最重要的因素。函数

缺点:没有面向对象易维护、易复用、易扩展
面向对象
定义
面向对象是按人们认识客观世界的系统思惟方式,采用基于对象(实体)的概念创建模型,模拟客观世界分析、设计、实现软件的办法。经过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。
面向对象是把构成问题事务分解成各个对象,创建对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
特性:抽象 封装 继承 多态性能

优势:易维护、易复用、易扩展,因为面向对象有封装、继承、多态性的特性,能够设计出低耦合的系统,使系统更加灵活、更加易于维护设计

缺点:性能比面向过程低
例如五子棋:
面向过程的设计思路就是首先分析问题的步骤:
一、开始游戏,   
二、黑子先走,   
三、绘制画面,   
四、判断输赢,   
五、轮到白子,   
六、绘制画面,
七、判断输赢,   
八、返回步骤2,   
九、输出最后结果。
把上面每一个步骤用分别的函数来实现,问题就解决了。对象

而面向对象的设计则是从另外的思路来解决问题。整个五子棋能够分为:
一、黑白双方,这两方的行为是如出一辙的,
二、棋盘系统,负责绘制画面,
三、规则系统,负责断定诸如犯规、输赢等。
能够明显地看出,面向对象是以功能来划分问题,而不是步骤。
例如盖一座大楼:
你想到的是楼怎么盖,哪里要有柱子,哪里要有梁,哪里楼梯等等(这就是面向对象),至于柱子该怎么建,用什么建,方的圆的,等等,这就是面向过程。 用面向对象思考问题更符合咱们人的思考方式。 其实咱们人现实生活中都是在面向对象。继承

看到此处,相信你对于面向对象与面向程序的区别有了更深的了解,预祝学业之路成功。
你若决定灿烂,倒影也美得让人惊叹!-悦游戏

相关文章
相关标签/搜索