# 面向过程编程
面向过程是一种编程思维,是以过程为中心的编程。主要的特点是先分析出解决问题需要的步骤,然后把每一步定义成一个一个方法,通过逐个调用的方式来完成整个功能。这样的好处是十分直接,要解决什么问题就写什么代码,但是复用性会比较差
。
- 如果使用面向过程的语言来完成,那么我将化身一个全能木匠,从准备原材料开始到家具成品,中间的所有步骤都要自己完成。首先是确定原材料、准备原材料、然后是制作形状、上漆等步骤。在编程上体现为:主要通过
方法调用
来完成,一个程序解决一个特定的问题。
# 面向对象编程
原材料准备,这应该是采购商的工作,其他的环节他无需插手;家具设计图,这是设计公司的工作;找到合适的木匠,这是用人单位应该做的。谁来做家具呢?木匠。于是我们把这些人组合到一起就可以完成这样一个工作,编程者更像是一个项目的负责人,需要知道完成这项工作需要用到哪些人,这些人应该能够完成哪部分的工作,每个人各司其职
。
封装
(把相关的信息(无论数据或方法)存储在对象中的能力)继承
(由另一个类(或多个类)得来类的属性和方法的能力)多态
(一个对象在不同情况下的多种形态)
# 面向对象特点
- 开销大,原来一个经验丰富的老师傅能完成的工作现在要这么多人来完成,要创建这么多对象,内存的占用当然也是较多的
- 可复用性强,可维护性高,需要开发复杂的逻辑可以用面向对象进行,一个类维护一个逻辑,一个方法维护一个细节。
# 面向过程和面向对象比较
← 解释型语言和编译型语言 设计模式理解 →