注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

LabATSS

关注自动测试软件

 
 
 

日志

 
 

LabVIEW面向对象设计模式学习之一:简单工厂模式  

2011-06-15 11:52:07|  分类: LabVIEW |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

LabVIEW在2008年推出的20周年纪念版LabVIEW 8.2中首次加进了面向对象的编程范型,在经过后继版本LabVIEW 8.6和LabVIEW 2009及LabVIEW 2010的不断更新升级,日趋稳定。而进行面向对象的编程时,在三大根基(信息封装、继承、动态替换)上离不开设计模式的学习和应用,因此本系列文章将陆续借鉴国外的相关资料进行LabVIEW面向对象的设计模式的学习。

 首先我们从设计模式中的简单工厂开始学习,根据传统的文本型面向对象的设计模式分类,简单工厂是属于构建型(Builder)模式。关于该模式网络和书籍中都有详细的介绍,我们直奔主题看看在LabVIEW中是如何实现的.

 

 
LabVIEW面向对象设计模式学习之一:简单工厂模式 - labats - LabATSS
 
 
LabVIEW面向对象设计模式学习之一:简单工厂模式 - labats - LabATSS
 
   

 如图所示我们的例程构建了父类—通用插件类(Generic Plugin.lvclass),其中抽象方法Get Color.vi和Get Name.vi是需要通过子类继承达到特化覆写的目的,而方法Load Plugin From Enum.vi和枚举类型Plugin Type.ctl是实现简单工厂的核心所在,另外一个方法为工具方法Load Plugin From Absolute Path.vi,其任务是完成将目标类从硬盘调用到内存中的工作。

 子类蓝色插件类和橙色插件类继承通用插件类,并根据自己的色彩特点覆写了Get Color.vi和Get Name.vi方法,分别实现各自色彩的颜色和名称,另外为更好的领悟简单工厂设计模式,我又增加编写了一个粉色子类,通过在枚举类型Plugin Type.ctl增加选项Pink,并且在方法Load Plugin From Enum.vi中添加相对应的Pink Case 结构达到动态的增加新的插件子类。

LabVIEW面向对象设计模式学习之一:简单工厂模式 - labats - LabATSS

 

LabVIEW面向对象设计模式学习之一:简单工厂模式 - labats - LabATSS
 
         总结:LabVIEW的简单工厂设计模式是通过在继承基础上,采用枚举类型和switch case结构来实现的,当有新的颜色种类时,也就是程序出现变化的时候,只需将新颜色继承于通用插件类,并覆盖编写抽象方法Get Color.vi和Get Name.vi以实现自身颜色特点,并通过枚举类型和switch case结构实现简单工厂的设计模式,由于客户程序即演示程序DEMO Factory.vi中是针对抽象类型(Generic Plugin.lvclass)编程,因此即使有了新的类型如Pink Plugin的增加也不会造成客户程序的更改。
  评论这张
 
阅读(1237)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017