第3章 面向对象的编程思想
3.1 面向过程和面向对象的概念
“面向过程(Procedure Oriented)”是一种以过程为中心的编程思想,是以“什么正在发生”为主要目标进行的编程,面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了,如图3-1所示。
图3-1 面向过程编程方法
“面向对象(Object Oriented)”是软件开发方法,是以“是谁在受影响”为主要目标进行的编程。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD(Computer Aided Design,计算机辅助设计)技术、人工智能等领域。面向对象的编程是一种对现实世界理解和抽象的编程方法,是计算机编程技术发展到一定阶段后的产物,如图3-2所示。
图3-2 面向对象编程方法
面向对象是指把构成问题的事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。
在PLC中,虽然没有面向对象编程的“类”等术语的概念,但在PLC中都能找到与面向对象中相似概念的表达方法。比如面向对象中,“类”的概念在PLC可以通过UDT(User-Defined Distinct Type,用户自定义数据类型)定义出来,不同的是PLC中可能需要多个UDT才能将一个对象的“类”完整地表达出来。
面向对象中,“方法”的概念在PLC中可以通过FB(Function Block,功能块)表达出来,同时FB的“嵌套”在一定层面上和面向对象中的“继承”类似。
在标准化系统中,所有设备的性能属性都被归纳总结在工艺描述中,那面向对象的编程方法就是将其在程序系统中实例化出来。为便于理解,下文将借用一个经典笑话,用一个面向对象的编程思路来剖析“将大象装进冰箱”。