首页 论坛 技术交流专区 物联网 [Labview经验] 【labview我来告诉你】程序初始化怎样更整洁

发帖 回复

[分享] [Labview经验] 【labview我来告诉你】程序初始化怎样更整洁
2401 查看
1 回复
 楼主 | 发布于 2018-03-31 | 只看楼主
分享到:
在中大型程序中,初始化是不可避免的,比如一些控件的复位,一些资源的开辟等等,以下举例几种常见的初始化代码组织方法,最后个人推荐一种我自己用的比较多的方法,请大家评价。
方法一:
初始化代码扔在主题循环外面,随便放置,如下图:
 
缺点:代码混乱,没有依靠关系
优点:简单,快捷,也是常见的一边开发程序一边增加初始化模块的产物
方法二:
用户自定义事件,里面有个init事件,在这个事件处理中,完成初始化。
 
缺点:留给初始化代码的空间非常有限,如果要做很多初始化工作,会要求增大主体循环框;或者配置几个初始化事件,比如init1,init2,init3,init1中触发init2,init2触发init3。。。可能会混淆程序逻辑(我某个项目中就是如此做,然后发现了用户事件的queue属性,这个以后可以单独写出)
优点:大型程序中几乎不可避免用到用户自定义事件,把初始化部分集成到用户事件中,方便管理,同时节省后面板空间;
方法三:
在主体循环之前,放一个sequence,如果初始化代码太多,可以使用stacked的sequence,如下图:

 
缺点:顺序结构没办法命名,违背self document思想;顺序结构不同的框传递数据比较麻烦;初始化顺序很难调整(虽然不常见,但我确实遇到过要调整初始化顺序的情况);
优点:初始化和主体循环分开,初始化代码增加不会要求主体循环变大;而且分开比较符合逻辑。
方法四:
把方法三的sequence用简单状态机代替,如下图:
 
缺点:初始化中创建的queue引用或者用户事件的ref要用移位寄存器保存,或者把创建ref的初始化代码放到最后。
优点:各个case都有命名,如果需要修改某个初始化代码,能很容易找到位置,而且也很容易看懂。 
(0 ) (0 )
回复 举报

回复于 2018-03-31 沙发

不错,多谢分享!!!
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部