一问题的提出 我公司在开发医院信息管理系统的过程中由于系统庞大遇到这样一个棘手的问题
我们制作了若干个用户自定义的数据窗口对象 每个对象中封装了一个独立的功能 如 数据窗口排序功能用户自定义列校验功能下拉数据窗口快速录入功能大文本录入功能回车到下一列功能等等 共个功能对象 由不同的人制作
我们需要任意选取其中的某几个功能对象做为祖先继承 由于PB不允许一个对象同时继承不同的祖先且祖先一旦确定 就不允许改变 如果将这个用户自定义数据窗口对象的功能全部封装到一个用户自定义数据窗口对象中 虽然能解决继承问题 但是该对象会很庞大对象内部逻辑变得更复杂 更难以维护一些在调用时用不上的功能 势必会在运行时消耗更多的系统资源 既然继承的路走不通 笔者就想出了一个对象变量引用的方法
二解决问题的思路
首先笔者引入了二个概念(指用户定义的数据窗口对象)
基本功能对象 具有单一功能的独立的用户自定义的对象
中间层对象 把自己捕获到的事件以某种方式传递给基本功能对象实例变量 以完成对基本功能对象相应的事件脚本的调用被继承 但不继承任何其它对象
另做一个用户自定义数据窗口对象它不继承任何对象 称之为中间层对象 在中间层对象中为每个需要用到的基本功能对象声明一个实例对象变量 在中间层对象的事件中去调用实例对象相应的事件 使用时继承中间层对象 以完成对基本对象的选择与调用
实现举例
基本功能对象制作
新建二个数据窗口用户对象 分别命名为 Uo_DwA Uo_DwB 在Uo_DwA 的Clicked 事件中写一行脚本
MessageBox ( Uo_DwA Uo_DwA 的单击事件)
在Uo_DwB 的Clicked 事件中写一行脚本
MessageBox ( Uo_DwB Uo_DwB 的单击事件)
中间层对象制作
新建一个数据窗口用户对象 命名为 Uo_DwInterlayer
为中间层对象声明二个实例变量
[] [] []