扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
{代码。。。。。。}
tFrm.show
End Sub
这样showFrm可以处理frmProduct的strA 了。但是call showFrm(frmUser)会报错,为什么就不用我多说了,即便frmUser也有Public strA as String 变量。
现在我希望showFrm即能处理 frmProduct 的 strA 又能处理 frmUser的strA。
是的 VB 6 能让我们实现这个showFrm。我首先想到的是接口,何为接口,接口,我个人认为接口是描述多个类的共同特征的类,是对多个类共性的描述。在VB工程中新建一个类 IfrmBase 如下:
Public Property Get strA() As String
End Property
Public Sub show() ''显示子窗体
End Sub
IfrmBase 呵呵一看名字就知道为基础窗体接口,凡是子窗体都要符合IfrmBase的描述。
然后再告诉系统,frmProduct 和frmUser是符合IfrmBase描述的类。
在frmProduct,frmUser 中加入
Implements IfrmBase
''--------------------------
''接口实现部分
''---------------------------
Private Property Get IfrmBase_staA () As String
IfrmBase_staA = Me.staA
End Property
Public Sub IfrmBase_show()
Me.show
End Sub
Private Sub showFrm(ByRef tFrm As IfrmBase)
{代码。。。。。}
tFrm.show
End Sub
于是在调用子窗体的地方就可以写上代码
call showFrm(new frmProduct)
call showFrm(new frmUser)
看到这大家应该明白,showfrm()是具有多态的。他要处理的类在编译时是无法确定的,所以他是滞后联编的。我碰到过好多人多少对VB带有瞧不起的眼光,说vb实现不了多态。我只想说vb是优秀的开发工具。
此外我还想再多说几句。最近比较热的工厂模式。的确showFrm是符合生活中的处理模式的,它只对符合一定特征的物品做处理。
铁匠只多带铁的东西的出里。医生只对生病的人处理。打气筒只对球,轮胎,这中有气门芯,内封闭的物体打气。如果做出来的打气筒只能给皮球打气,要我就仍了算了呵呵。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者