编程思想:面向过程与面向对象

一、编程思想

1、含义

用计算机来解决人们实际问题的思维方式

2、演变
(1) 面向过程编程POP
  1. 一种线性思想,以过程为中心的编程思想,又称结构化编程
  2. 按照步骤去解决问题
  3. 代码层面:一个步骤一个函数
(2) 面向对象编程OOP
  1. 一种面向对象思想, 高度抽象思维
  2. 先从问题中定义对象属性行为,再利用对象之间的行为交互去解决问题
  3. 代码层面:
(3) 面向切面编程AOP
  1. 不修改类,又能扩展功能
  2. OOP的一种补充,解决OOP类不方便扩展的问题

二、面向过程 (Procedure Oriented)

1、含义

面向过程 (Procedure Oriented)是一种以过程为中心的编程思想

2、侧重——步骤化

实现功能的因果关系具体过程步骤
(将要实现的功能描述为一个从开始到结束按部就班的连续的过程步骤,分析解决问题所需的步骤,然后用函数一步一步实现这些步骤,使用时依次调用即可。)

3、优点

对于业务逻辑较为简单的程序,面向过程可达到快速开发,前期的投入成本较低。性能比面向对象高,比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。

4、缺点

对于业务逻辑较为复杂的程序,面向过程很难解决。另外,面向过程的开发方式会使软件元素之间的耦合度非常高,组件的复用性差。【耦合度高,扩展力差】


三、面向对象 (Object Oriented,OO)

1、含义

面向对象 (Object Oriented,OO)是将整个需求按照特点、功能划分,将存在共性的部分抽取封装成对象(独立体),创建对象不是为了完成某一步骤,而是描述某个事物在解决问题的步骤中的行为。 (高度抽象思维)

2、侧重——行为化

主要是将事物对象化,包括其属性(状态)行为。面向对象编程更贴近实际生活的思想,其底层还是面向过程,面向过程抽象成类,然后封装。(万物皆对象)

3、面向对象三大特性

封装继承多态

4、OOA、OOD、OOP

面向对象软件开发生命周期三个阶段:
OOA:面向对象的分析 (Object-Oriented Analysis)
OOD:面向对象的设计 (Object-Oriented Design)
OOP:面向对象的编程 (Object-Oriented Programming)
【整个生命周期都贯穿OO面向对象】

5、优点

面向对象编程思想更容易解决现实世界中更复杂的业务逻辑,更符合人的思维方式。另外,组件的复用性更强,耦合度低,扩展力强【易维护、易复用、易扩展】

6、缺点

性能比面向过程低,因为类调用时需要实例化,开销较大,较消耗资;需要进行独立的抽取、大量的系统分析与设计,前期投入成本较高。


四、举"栗子"

1、洗衣服

面向过程:脱衣—找盆—放洗衣粉—加水—扔进衣服—搓洗—清洗衣服—拧干—晾起来
面向对象:脱衣—打开全自动洗衣机—扔进衣服—放洗衣粉—按键—晾起来

2、大象装进冰箱

面向过程:(三个过程)
把冰箱门打开
把大象装进去
把冰箱门关上

面向对象:(三个动作/行为)
冰箱,你给我把门打开
冰箱,你给我把大象装进去(或者说,大象,你给我钻到冰箱里去)
冰箱,你给我把门关上
【每个动作有一个执行者,它就是对象。】


五、面向过程与面向对象的区别

面向过程 (Procedure Oriented)和面向对象 (Object Oriented,OO)都是对软件分析、设计和开发的一种思想

1、区别:
① 从语言上

C语言:完全面向过程 (纯面向过程)
C++:半面向对象 (一半面向过程,一半面向对象)
Java:完全面向对象 (纯面向对象)

② 从特点上

面向过程:程序是一个个由模块接力的流水,整个流水之间互相依赖的。
面向对象:程序是一个个由个体组成的团队,个体有自己的属性与方法。

③ “蛋炒饭"和"盖浇饭”

(饿了~~~)
面向过程是蛋炒饭,面向对象是盖浇饭。

蛋炒饭将“蛋”“饭”搅和在一起,想换“蛋”“饭”中任何一种都很困难,耦合度很高,用软件工程的专业术语就是“可维护性”较差。
盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性,饭不满意就换饭,菜不满意换菜。“饭” 和“菜”的耦合度比较低,“可维护性”较好。
软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著地改善了软件系统的可维护性。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值