上QQ阅读APP看书,第一时间看更新
3.2 面向过程和面向对象的不同表达
1.面向过程
本节以“将大象装进冰箱”来类比工业生产的过程步骤,举例说明面向对象的编程思想及其与面向过程的编程思想的区别。在面对这样的课题的时候,面向过程的编程人员就会针对分析这个需求之后列出几个步骤:
1)把冰箱门打开;
2)把大象装进去;
3)把冰箱门关上。
上面每一个步骤,程序员都会用一个函数或者功能块来实现,比如定义了如下的FB:
再通过排列组合完成客户的需求,顺利交工。
通过以上描述我们发现,程序员做的工作就是在接到需求以后,把这些需求拆成一个一个的指令或者步骤,然后根据客户的需求将其排列起来交给控制器去执行。和上一节所讲的面向过程的定义是一致的。
这样就结束了吗?如果后续交流时,客户又说还要实现以下功能:
“我要把大象装冰箱,但是门别关,敞着就行”
“我还需要冰箱的冷藏温度调到10℃”
……
这个时候,程序员就必须得把整个程序系统通读一遍,找出可以用的函数(如果没有就再定义一个),最后依次调用它们。随着客户后续要求的不断提出,最后容易使整个系统变得越来越杂乱无章且难以管理,程序员不堪重负。
2.面向对象
下面通过面向对象思维,从另一个角度来解决这个问题。面向对象是把“对象”作为程序的基本单元,控制过程中的驱动器、传感器、智能设备都可以归纳为对象。那么对象到底是什么呢?对象就是对事物的一种抽象描述,现实世界中的事物,都可以用“数据”和“能力”来描述。比如要描述一个人,“数据”就是他的年龄、性别、身高体重,“能力”就是他能做什么工作,承担什么样的责任。
例如让“电动机”这个对象“起动”,就可以把“起动”的命令发给“电动机”让其执行,就实现了“电动机起动”的需求。
如何进行面向对象的编程呢?根据上面课题的需求,下一节将演示按照面向对象是怎么编程的。