《设计模式之美》理论三:面向对象相比面向过程有哪些优势?面向过程真的过时了吗?

王争《设计模式之美》学习笔记

什么是面向过程编程与面向过程编程语言?

  1. 面向过程编程也是一种编程范式或编程风格。它以过程(可以理解为方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性)与方法相分离为最主要的特点。面向过程风格是一种流程化的编程风格,通过拼接一组顺序执行的方法来操作数据完成一项功能。
  2. 面向过程编程语言首先是一种编程语言。它最大的特点是不支持类和对象两个语法概念,不支持丰富的面向对象编程特性(比如继承、多态、封装),仅支持面向过程编程。
  3. 面向过程风格的代码被组织成了一组方法集合及其数据结构,方法和数据结构的定义是分开的。面向对象风格的代码被组织成一组类,方法和数据结构被绑定一起,定义在类中。

面向对象编程相比面向过程编程有哪些优势?

OOP 更加能够应对大规模复杂程序的开发

  1. 在进行面向对象编程的时候,我们并不是一上来就去思考,如何将复杂的流程拆解为一个一个方法,而是采用曲线救国的策略,先去思考如何给业务建模,如何将需求翻译为类,如何给类之间建立交互关系,而完成这些工作完全不需要考虑错综复杂的处理流程。
  2. 当我们有了类的设计之后,然后再像搭积木一样,按照处理流程,将类组装起来形成整个程序。
  3. 这种开发模式、思考问题的方式,能让我们在应对复杂程序开发的时候,思路更加清晰。
  4. 利用面向过程的编程语言照样可以写出面向对象风格的代码,只不过可能会比用面向对象编程语言来写面向对象风格的代码,付出的代价更高一些。

OOP 风格的代码更易复用、易扩展、易维护

  1. 封装特性是面向对象编程相比于面向过程编程的一个最基本的区别,因为它基于的是面向对象编程中最基本的类的概念。
  2. 基于接口的抽象,可以让我们在不改变原有实现的情况下,轻松替换新的实现逻辑,提高了代码的可扩展性。这是面向过程编程所不具备的。
  3. 继承和多态特性是面向对象编程相比于面向过程编程所特有的两个特性。
  4. 子类可以重用父类中的代码,避免了代码重复写多遍,提高了代码的复用性。
  5. 们在需要修改一个功能实现的时候,可以通过实现一个新的子类的方式,在子类中重写原来的功能逻辑,用子类替换父类。在实际的代码运行过程中,调用子类新的功能逻辑,而不是在原有代码上做修改。这就遵从了“对修改关闭、对扩展开放”的设计原则,提高代码的扩展性。

OOP 语言更加人性化、更加高级、更加智能

  1. 二进制指令、汇编语言、面向过程编程语言是一种计算机思维方式。
  2. 面向对象是一种人类的思维方式。
  3. 越高级的编程语言离机器越“远”,离我们人类越“近”,越“智能“。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值