学innosetup实践fastscript(delphi)

常常遇到要写一些客户端程序,其中90%以上的代码都是一样的,但10%是不一样的。
最土的办法自然是copy一个老程序过来,改一点就行了。但是从软件重用精神讲还是处于初级阶段。
但那些不同之处又是不能通过参数来调整这么简单的,有时还非得代码不可。
我能想到的对策就是2种:插件和脚本。
插件比较重量级,需要编译,需要开发环境。适合逻辑比较复杂的情况
脚本一般由于不能设断点调试,文本编辑器就可以了,适合逻辑比较简单的情况。
但是插件和脚本逻辑上是完全一样的,都是定义一组回调函数以符合预定义的接口规范,供主程序调用。


因为我最近又实践了一下脚本语言,
不怕丢脸,主程序还是Delphi,脚本还是fastscript.
我自己其实也希望是Java跟javascript/JRuby/Groovy的组合,下次有机会吧,至少原理是一样的吧。

界面:略。

我定义了3个事件:
AfterScan(var SN,Index)
Verify(SN,var ErrMsg):boolean
Submit(SN[])

这样以来,主程序的逻辑就比较简单:
1 用户扫描SN,调用AfterScan(),比如Trim(),或者大小写转换,加前缀等。
2 调用Verify(),如果校验失败就提示错误信息并要求重新输入,成功就继续。
3 最好调用Submit(),因为这里变化比较多。到底要怎么处理这些SN完全凭脚本的定义了。常见的是保存到哪个表。

这样一来,我就把不变的部分逻辑用主程序实现。
变化的部分用脚本定义。
主程序随时可以根据用户的选择,装入不同的脚本,实现不同的业务处

理逻辑。
原来的好多个模块估计就这样可以用一个主程序替换掉了。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值