- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 【LabVIEW面向对象编程08】接口隔离深度解密
参考下图的设计,在这个设计里,取款、存款、转帐都使用一个通用界面接口,也就是说,每一个类都被强迫依赖了另两个类的接口方法,那么每个类有可能因为另外两个类的方法(跟自己无关)而被影响。接口隔离原则 (Interface Segregation Principle,ISP) 要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。这样当我们新增一个新的功能转账时,直接添加对应的功能,不影响已有的代码,将存款,取款,转账等功能解耦,实现了高内聚低耦合,扩展灵活,符合设计原则!
2024-09-18 22:22:40
326
原创 【LabVIEW面向对象编程07】里氏替换原则深度解密
同样,由于“气球鱼”不会游泳,所以不能定义成“鱼”的子类,“玩具炮”炸不了敌人,所以不能定义成“炮”的子类等。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法,如果通过重写父类的方法来完成新的功能,这样写起来虽然简单,但是整个继承体系的可复用性会比较差,特别是运用多态比较频繁时,程序运行出错的概率会非常大。子类可以形似父类,但又异于父类,“龙生龙,凤生凤,老鼠生来会打洞”是说子拥有父的“种”,“世界上没有两片完全相同的叶子”是指明子与父的不同;骊马,马也,乘骊马,乘马也”。
2024-09-18 21:17:07
258
原创 【LabVIEW面向对象编程06】开闭原则深度解密
首先是正常的业务逻辑要保证测试到,其次是边界条件要测试到,然后是异常要测试到,比较重要的方法的测试方法其至有十多种,而且单元测试是对类的测试,类中的方法耦合是允许的,在这样的条件下,如果再想着通过修改一个方法或多个方法代码来完成变化,基本上就是痴人说梦,该类的所有测试方法都要重构,想象一下你在一堆你并不熟悉的代码中进行重构时的感觉吧.在书店售书的例子中,增加了一个打折销售的需求,如果我们直接修改getPrice方法来实现业务需求的变化,那就要修改单元测试类。此方法修改少,对现有的代码没有影响,风。
2024-09-18 20:56:53
275
原创 【LabVIEW面向对象编程05】单一职责深度解密
可维护性提高变更引起的风险降低,一个接口的修改只对相应的实现类有影响,对其他接口无影响,这对系统的扩展性,维护性都有非常大的帮助!色,分别对应用户的权限,如此一来我们这个类就需要添加许多方法,如果后期我们某个用户的角色发生改变,那么我们需要改动的地方非常大,首先要获取用户的信息,然后改变用户的角色,再设置用户的权限,后续如果还需要让一个用户拥有多个角色,处理起来非常麻烦,这样原先的一个Userlnfo类得非常臃肿,杂乱,不方便修改,难以移植复用,显然是一个糟糕的设计。现在假设这样一种场景,我们把用户管理。
2024-09-18 18:33:20
660
原创 【LabVIEW面向对象编程04】入门案例3
很简单,每次我们新增加一个报表模式只需添加一个对应的类继承在Report下即可,大家可以自己在下面尝试增加Excel报表和word等等,程序扩展起来很简单,符合设计原则: 通过扩展已有的程序而不修改原有的!上一节我们完成了对TXT Report的操作,今天我们在上一节内容的基础上扩展我们的程序。运行一下弹出对话框,我们将文件保存为TDMS,运行结束后打开保存的路径看看,找到我们的。至此,我们很快就就完成了一个TDMS Report 的实现,接下来我们运行看看效果。正确的实现了我们想要的功能。
2024-09-18 17:49:15
321
原创 【LabVIEW面向对象编程03】入门案例2
上一节我们初步进入labview面向对象的世界,让大家对labview面向对象编程的特点有了大致的了解,通过上节内容大家应该很容看出labview中是如何实现类的继承的,以及在实践中如何去处理,今天我们继续通过实例带领大家学习labview面向对象的一些特点。至此,我们的抽象类已将创建完好,接下来我们创建实现类,用于直接继承Report.新建一个虚拟文件夹Complemments用于保存实现类。至此我们就已经完成了一个TXT报表,实现之后,我们在回头看看我们在labview中的结。
2024-09-18 17:32:24
382
原创 【LabVIEW面向对象编程02】入门案例1
我们为动物类添加一个方法,发出叫声,因为不同的动物叫声不一样,我们需要为不同的动物重写该方法,右键新建一个虚拟文件夹 Method must be Overridden 表示这个文件夹的方法是需要被子类重写的,我们右键基于动态分配的模板VI,到此我们就写到这里,大家应该可以发现我还没有使用刚刚新建的数据访问器方法,大家可以自己使用一下,通过访问器设置和获取猫和狗的信息,下节我们将带领大家进行更深入的学习~右键animal类,将需要重写的方法设置如图: 需要子类重写父类的方法。
2024-09-18 16:28:42
539
原创 【LabVIEW面向对象编程01】简介
记得刚接触labview那会儿,领导让我在测试设备上写一个简单的日志记录程序,自己反反复复查阅资料才简单的写了一个实在是撇脚的程序,后来领导趁着工作之余给我大致讲解了几个函数的用法,然后简单的改了一下,程序就像突然有了灵魂一样,简单好用,从那时起就对labview产生了兴趣,一发不可收拾,那时经常一个人熬夜学习,现在已然没有那种动力了,哎,年轻就是好。接下来我们为学生类创建一个对象,新建一个VI,打开程序框图,直接将我们项目中的类拖到程序框图,它就成为一个实实在在的对象,我们将其命名为studentA。
2024-09-18 15:56:52
432
原创 【LabVIEW面向对象编程14】数据采集篇(DI)
在前面,我们已经仿真测试了使用面向对象写的模拟量数据采集,接。增加私有数据,我们配置DI采集时,需要配置采集卡通道,通道数。着继续看看数字信号的采集与仿真测试。NI Max里配置仿真机箱。
2024-09-16 12:10:01
667
原创 【LabVIEW面向对象编程13】数据采集篇(AI)
NI Max创建仿真硬件进行测试,已经在知识星球的小伙伴可以直接在。在工作中,我们经常用到NI的数据采集卡来进行数据采集,为了方便。大家了解学习面向对象的相关知识,用oOP写了一个采集程序,并用。增加私有数据,我们配置AI采集时,需要配置采集卡通道,通道数。星球里免费学习,已同步更新。
2024-09-16 12:07:21
686
原创 【LabVIEW面向对象编程12】工厂模式
对于简单工厂模式将对象的创建和对象本身业务处理分离可以降低系统的耦合度,使得两者修改起来都相对容易。在调用工厂类的工厂方法时,由于工厂方法是静态方法,使用起来很方便,可通过类名直接调用,而且只需要传入一个简单的参数即可,在实际开发中,还可以在调用时将所传入的参数保存在XML等格式的配置文件中,修改参数时无须修改任何源代码。简单工厂模式最大的问题在于工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,这一点与开闭原则是相违背的。
2024-09-16 12:04:27
149
原创 【LabVIEW面向对象编程11】装饰者模式
这篇文章来讲解装饰者模式,那么什么是装饰者模式呢?对于名字来说你可能会感到比较陌生,但是你在生活中肯定经常使用这个模式去解决生活中的一些问题。只是你并不知道它原来是装饰者模式而已。想象一下,每天早上你匆匆忙忙的起床去上班,然后在路边买一份煎饼果子作为你的早餐!大叔告诉你可以加鸡蛋,香肠,培根等等食材,但是不管怎么加都不会白加,大叔最终提供给你的依然是一份煎饼果子,然而最终的价格不一样。在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修、相片加相框等,都是装饰者模式。
2024-09-16 11:52:32
137
原创 【LabVIEW面向对象编程10】策略模式
在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以采用打折、送商品、送积分等方法。支付系统中,有很多支付策略,比如支付宝,微信,银联。在支付时需要选择其中一种支付策略进行支付业务.
2024-09-16 11:47:52
149
原创 【LabVIEW面向对象编程09】依赖倒置原则深度解密
依赖倒置原则 (Dependence Inversion Principle,DIP) 是 Object Mentor 公司总裁罗伯特·马丁(Robert C.Martin) 于 1996 年在 C++ Report 上发表的文章。依赖倒置原则的原始定义为: 高层模块不应该依赖低层模块,两者都应该依赖其抽象;
2024-09-16 11:27:22
262
原创 LabVIEW中二维码生成和识别
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、LabVIEW生成二维码二、LabVIEW识别二维码总结前言问渠哪得清如许?为有源头活水来。大家好,我是一个不学无术的技术宅,平时爱好就是不断学习充电,因为我深刻认识到,只有持续学习才能做有价值的输出,正如开篇诗道:问渠哪得清如许?为有源头活水来。二维码作为一种全新的信息存储、传递和识别技术,自诞生之日起就得到了广泛的应用,在工业产线中,经常使用二维码记录产品信息,这样方便客户随时查看当前产品各项测试参数。如何.
2022-05-29 16:59:13
3537
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人