二、为什么要学习面向编程?

面向对象编程,如果将上文推荐的两本书读完后,基本上也就有了答案。从自我产品开发的经验中,理解为可以迅速解决中大型程序需求变化时,在不影响其他程序功能的情况下,能够实现新增功能的快速迭代,方便程序的扩展和可维护。

在NI公司的文档描述中,对于ActorFramework框架优势描述如下:

  • 具备QDSM 设计的所有优势
  • 灵活性显著提高
  • 更多的重复使用VI
  • 降低不同模块之间的耦合性

如果用一句话概括,就是提高编程的生产效率。

三、LabVIEW面向编程学习为什么有点难?

面向对象编程在文本语言开发环境内是一致看好的编程方式,但是在LabVIEW编程环境下,对于实现面向对象编程,却是有点褒贬不一。

为什么会这样?我个人的理解如下:

大部分LabVIEW的学习和使用者,大都非计算机编程专业人员,这点很关键。即,LabVIEW的使用者,并不能对编程有较深的理解,仅仅是通过简单代码范例的学习,完成自己领域内试验原型的验证工作。使用者也许是物理、通信、热能、自动化、电气等领域的研发、测试或者应用开发人员。使用面向过程的编程方式,是其所熟知并符合逻辑分析流程的思维方式。

而从LabVIEW本身的描述,也说明了这一点。阐述如下:

“LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。 LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。”

而面向对象的编程思想,在文本语言的开发环境下,能够相对容易理解,而对于图像化语言,本身就是基于流程化的编程表达方式,对于描述并使用面向对象编程方式,还是有些困难的。

所以,如果学会一门文本语言,如JAVA、C#等,有面向对象的基础,再熟悉LVOOP的实现方式,就能够更方便的学习和使用。编程的生产效率还是能够有很大的提高。

因此,这就导致了LVOOP学习曲线非常陡峭。

另外,很多使用者,仅仅是编写简单的应用程序,使用QMH、QDSM等简单的架构,就可以满足大部分的需求,学习LAbVIEW面向对象编程,变得不是那么重要。

即,当在编写中小型项目程序时,面向对象编程并不能体现其优势。在最初的设计时,有时还要比面向过程的设计方式慢一些。

但是,在中大型系统的程序开发中,随着功能复杂度的增加,面向对象的优势会越来越明显。

所以,是否学习LabVIEW的面向对象编程,就有了不同的观点。

最终,还是要取决于个人的项目实际应用需求。

LabVIEW面向对象的ActorFramework(2)的更多相关文章

  1. LabVIEW面向对象的ActorFramework(3)

    四.LabVIEW面向对象的编程架构:Actor Framework Actor Framework是一个软件类库,用以支持编写有多个VI独立运行且相互间可通信的应用程序,在该类型应用程序中,每个VI ...

  2. LabVIEW面向对象的ActorFramework(1)

    本系列文章主要阐述以下几个问题: (1)什么是面向对象编程? (2)为什么要学习面向编程? (3)LabVIEW面向编程学习为什么有点难? (4)LabVIEW面向对象的编程架构:Actor Fram ...

  3. 用C++写程序的一些感悟

    前言 近期使用C++有了一些心得很感悟,这里整理一下. 心得1 如果只会使用LabVIEW写程序,还想要进一步深入程序设计,一定要学习一门文本语言. 什么是会用LabVIEW 会用是个比较笼统的概念. ...

  4. [LabVIEW架构]ActorFramework(一)

    前言 小黑结婚回来第二周了,每天忙于程序设计,时间比较紧张,所以文章一直没出来,也算憋大招了. 近期小黑将与大家一起认识一下ActorFramework,既是对自己一段时间写AF程序的总结,也是梳理, ...

  5. [LabVIEW架构]ActorFramework(二)

    前言 在上一个文章中,我们介绍了一下LabVIEW中AF的基本概念,本讲将以上一次的例子来讲解LabVIEW中的实现 正文 范例说明 假定两个人,一个作为老师,一个作为学生.学生每天早上给老师发送一封 ...

  6. 【LabVIEW技巧】LabVIEW OOP怎么学

    前言 有很多人对LabVIEW OOP存在比较极端的看法,大致分为两类: 1. 绝对否定派认为LabVIEW OOP只不过是LabVIEW为了追求时髦,在面向过程的基础上用簇做了一些特性,实际上完全不 ...

  7. ActorFramework教程对比及规划

    牢骚太盛防肠断,风物长宜放眼量. 一.引子 昨天的文章,本来就是想写写ActorFramework的教程内容,结果写着写着偏了,变成了吐槽. 首先,声明一下,自己从未参加过任何LabVIEW培训班,也 ...

  8. 有哪些LabVIEW快捷键让你相见恨晚

    前言 任何一门工具,当你使用它到极致的时候,往往都朝着这样子的两个方向发展 1. 具有鼠标操作功能的软件,他的使用的极致就是脱离鼠标,迈向键盘 2. 主要是键盘操作的,他的极致就是脚本自动化,或者说一 ...

  9. LabVIEW类方法浏览器-Class Method Browser

    随着LabVIEW的类编程应用增多,当打开较多的VI进行编辑时候,添加该类对应的VI方法到程序后背板上操作显得繁琐(需要在Project浏览器或类浏览器或库浏览器中找到该类的方法VI,然后再拖到程序背 ...

随机推荐

  1. UIView动画的使用

    下面介绍三种简单的UIView动画的使用,如果在项目中对动画没有太多“细致化”的设计要求,基本够用了. 一.首尾式动画 说明:如果只是修改控件的属性,使用首尾式动画还是很方便的,如果还需要在动画完成后 ...

  2. MySQL之约束

    目录 约束(CONSTRAINT) mysql中的约束有哪些? 级联操作 产生的原因: 两种级联的定义方式 约束(CONSTRAINT) 什么是约束? ​ 是一种限制,对某一个东西的限制.例如宪法规定 ...

  3. pta 7-1 找出不是两个数组共有的元素

    给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔. 输出格式: 在一行中按照数字给出的顺序 ...

  4. 5 JSON&与JavaScript转换&JavaScript:void(0)&JavaScript代码规范

    JSON:JavaScript Object Notation   JS对象简谱 一种轻量级的数据交换格式,用于存储和传输数据的格式,通常用于服务端向网页传递数据 是独立的语言,易于理解 JSON语法 ...

  5. LeetCode 21. Merge Two Sorted Lists(合并两个有序链表)

    题意:合并两个有序链表 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next ...

  6. 修改vue中的挂载页面(index.html)的路径

    修改vue中的挂载页面(index.html)的路径 2019年03月30日 12:07:12 VegasLemon 阅读数 501    版权声明:本文为博主原创文章,未经博主允许不得转载. htt ...

  7. android开发如何在页面之间传参

    第一个页面跳转 传递值 Button bn1=(Button)findViewById(R.id.btn_Login); //跳转bn1.setOnClickListener(new OnClickL ...

  8. java垃圾回收学习

    经过一个晚上的努力终于完成了一个文件替换指定字符串的程序,但是由于我要替换的全站程序html文件太多, 所以eclipse下边老是在一个目录结束后报出java.lang.OutOfMemoryErro ...

  9. ABC154F - Many Many Paths

    梦回高中,定义的f(i,j)为从(0,0)到(i,j)一共有多少条路可以选择,易知我们要做i+j次选择,其中有i次是选择x轴,剩下的是y轴,所以f(i,j)=C(i+j,i)=C(i+j,j),给你一 ...

  10. 138、Java内部类之访问内部类的私有属性

    01.代码如下: package TIANPAN; class Outer { // 外部类 private String msg = "Hello World !"; class ...