NI State Pattern Actor工具包使用讲解

一、安装方法

vi package manager 搜 NI State Pattern Actor并进行安装

这里有个官方范例可以学习

二、扩展包作用

其实就是你有一堆继承于同一父类的Actor,然后你想在程序里切换这些Actor,以实现具体功能的切换。有点抽象,其实有个很常见的应用,就是取款机或者各种其它类似的机器。

在不同的页面,你的按钮的功能会不一样,具体显示窗口显示的内容也会不一样。但一样的是,这个界面总是保持着目前这个形式。

假设每个“界面+按钮”的组合都是一个Actor,这些组合的切换,都是通过切换Actor来实现。

大家是不是有点感觉了?

三、扩展包使用教学

3.1 扩展包咋用

具体api在如图这个位置,只有一个方法可供使用。



使用起来很简单,新建一个Actor就叫它“抽象状态”吧,继承于这个State Actor,然后就可以使用该方法了。(有人可能会问我继承里咋找不到这个State Actor,随意打开个vi,把这个函数拖进去,就能找到State Actor这个类去继承了)

然后基于这个抽象状态,再做几个具体的状态1,2,3……方便你去切换。

具体的切换函数实现如下:

注意!输出变成了State out!

嗯,这样就实现了Actor的切换(才怪。。。)我们知道,一般actor里的方法,我们是通过发送消息给Actor去实现的。所以我们也要创建消息,但是我们打开消息的Do.vi

图里红框所示的这个vi,又会把你的actor转回去,而我们干的事情是把Actor换成另外的Actor。所以要把这个vi删除,该vi解释有点拗口,想看它实际功能的可以打开该vi的具体程序框图。

把Do.vi改成如下图所示即可。

如此你就做了一个最简单的Actor切换。

3.2 Change State.vi内部有啥

老的操作者退出(这个vi其实是用于写一些退出的动作的)——>替换新的操作者(实际的交换在这个vi里)——>新的操作者进入(这个vi其实是用于写一些进入前的动作)。

退出和进入,我们在继承了State Actor后可以重写这两个方法,以实现Actor退出和进入时候的一些操作。

四、简单小案例

大概就是这样的一个效果,其余actor较为常规的操作我就不多赘述了,大家可以参考源码进行学习使用,应该还是比较有意思的且有用的一个工具包。如果大家觉得这个案例过于简单,也可以参考自动取款机的样式做一个小范例,我这边就偷个懒了。

源码如下:

通过百度网盘分享的文件:AF state pattern学习.7z
链接:https://pan.baidu.com/s/1OqHoNGg3mqWqOriE2kTs7A?pwd=siyt
提取码:siyt
–来自百度网盘超级会员V6的分享

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值