面向过程
把问题进行一步步分解, 分解出来的操作, 抽象成为函数, 由具体的函数来进行完成, 程序的实现是依次按步骤执行相应函数的过程.
在面向过程当中, 数据, 是与函数相隔离的, 数据由具体的数据结构(比如c语言中的结构体)来进行储存, 数据在函数之间通过参数传递, 或者由函数直接去操作数据(指针), 经过一系列函数的处理, 最终得到我们想要的结果.
面向对象
把问题进行一步步分解, 分解出来的操作(或者说是模块), 抽象成为类, 而对象是类的具体实体, 由一个个对象按逻辑相互发送消息, 通过对象与对象之间的互相利用来实现功能.
类!=对象, 一定要区分开
面向对象将实体的属性和行为绑定到了一起, 实现了对现实世界的真正模拟.
面向对象的优势:
- 设计程序的视角更加人性化, 面向对象是对于现实世界实体的抽象, 这个实体不仅仅代表是客观存在的, 而且可以是主观的心情, 意识, 记忆等, 使人们在设计理解程序时,能更加高效和准确建立现实世界到计算机程序之间的映射关系, 面向对象将人们从过程抽象中解放出来, 走向属性+行为的数据抽象方式.
- (封装)由于属性和行为绑定到了一起, 所以属性从描述客体属性的单独数据结构中抽离出来, 这样有能力保护相应的属性可以不受到外界的访问, 只能对指定的接口进行访问. 所以再次基础上, 只要接口没有变化, 我们可以随意的去修改内部的属性或者行为的实现, 而对于外部使用人员来说, 他们的代码没有受到任何影响, 这对于代码的可重用性是很有帮助的.
参考资料 Hollis 面向对象、面向过程 面向对象百度百科
NEXT数据库的三大范式