PLC
直播中

笑过就走

9年用户 890经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术
私信 关注

面向对象编程总结

如何从面向过程到面向对象OOP?
面向对象是什么?有何特点?

回帖(1)

杨军

2021-9-29 14:12:53
  从面向过程到面向对象OOP是一次伟大的进步,这个进步不亚于从二维世界进入三维世界。因为传统的面向过程有两方面的缺陷,一方面是面对大量的设备对象进行过程流程组织时,如果只是思考执行逻辑,会变得非常的复杂,流程过程需要描述每一个对象的执行,有很多业务代码是在描述重复的事情。第二个方面就是流程是需要固定不变的,面对大量的事物如果用面向过程的思维去进行设计,一旦流程需要改变就意味着推到重来,因此面向过程的复用性不高。所以在面对日益复杂的编程中,计算机语言都从C升级到了C++,而工控人如果还只是停留在梯形图或简单的面向过程思维时,对未来大系统的智能社会会力不从心。当然对于小系统来说,依然还是面向过程的天下,因为面向过程执行效率高,底层系统单一逻辑不需要层层去嵌套和对象化。面向过程适合小设备,面向对象适合在大系统里开发。
  面向对象就是把单个事物进行抽象,这个时候就如同在开发模具,一旦模具开发了就可以大批量的规模化对象,底层逻辑得到高度复用,并且这个模具是可以不断升级改进的,对于非标的也可以在模具上进行改进,这就是继承和重载。定义了模具,具体的一些参数就被固化在内部,对外只提供接口和属性,内部的逻辑是隐藏的,这有两大好处,一个是不让核心的逻辑告诉别人,一个是不允许别人改动改乱了,这就是封装的意义。进行面向对象开发就像完全是在搭积木一样,可以分工每个人去写不同的功能块,不同的功能块最后在一个程序program里面去实例化组装,单独功能块(模具)和框架逻辑可以分层开来。
  当然了任何事物都是对立统一的,面向对象有很大的好处,也有一些小的缺陷,缺点就是逻辑感觉上是有些不连续的,流程需要触发,这对于理解原来的业务过程变得不是那么直接了,整个系统的逻辑隐藏在了每一个对象后面,流程的主线分散在每个对象里。还有面向对象有多重继承,层层嵌套后要能管理好整个类的连接关系,参数传递等等这需要有规划能力,因此面向对象的程序最大最大的难点就是在设计架构,这才是最核心的能力,也是一般人难以达到的境界。面向对象一定是未来的趋势,虽然这和人们直接的思维逻辑流程反应不切合,但是对于社会系统却是非常符合的。
  总结一下面向对象编程非常适合的:
  1,面向对象适合在大型系统里编程开发,不同的人可以不同分工,最后程序系统进行组装。
  2,面向对象可以实现非常复杂的数学运算,有很复杂的运算,数据处理,统计分析的场合,普通逻辑编程非常困难。
  3,面向对象适合流程工艺并不是非常明确,有可能有巨大调整改动的场合,功能块独立调整起来更容易。
  4,面向对象适合非常复杂的控制里面,有很多属性抽象的概念参与控制的场合。
  掌握面向对象编程才能从传统工控的红海里面超脱出来,普通的梯形图编程已经是泛滥化,白菜化了,普通的PLC人员承受大量的非标工作量,却并不能赢得人生应有的模样,这是无数工控人的心酸。而掌握面向对象向上能做IT编程,调用强大的系统资源,向下就是贴近生产应用的底层自动化执行部件。而能实现面向对象开发的控制器已经不是一般意义的控制器了,这是可以跑数据库,充当各类服务器,能进行混合编程(C++,Matlab,Json,XML)的PAC。掌握OOP这就掌握了普通工控人难掌握的智能化控制实现,又解决了IT人员不懂设备层逻辑断手断脚的问题,因此这是非常适合未来发展的趋势。当然面向对象不是那么好学的,完全掌握还需要明白OOA、OOD,也需要了解更多IT知识和系统资源使用。更多的心得感悟欢迎找我交流 VX-BestMrRight。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分