2011年计算机等考二级VB辅导知识技巧总结(15)

2 #
3Public Sub Update() #
4 MsgBox "Class2 Updated"
5End Sub
在使用的时候,可以使用以下方法,而实现一些设计模式: #
1Dim objTest As Variant #
2
3Dim objC1 As New Class1
4Set objTest = objC1 #
5objTest.Update
6 #
7Dim objC2 As New Class2 #
8Set objTest = objC2
9objC2.Test
#
10
这样,无须继承机制,也可以得到抽象接口的优势,而使接口、实现分离。 #
第二,在调用外部的COM自动化组件时,如Office,如果通过这种方式调用,对于不同版本的Office,如果你调用的方法、属性都是存在的,那么可以适应不同版本的Office,但如果通过前期绑定,在项目引用中确定对象类型,是有版本兼容问题的。
#
3. 效率和劣势
其实最主要的劣势是效率问题,《Advanced Visual Basic 6》一书说,使用Variant变量和Long变量进行循环,效率差别是1.5倍,而没有别人认为的那么大,而且对于大对象,差别也不是很大。对于本文前边的例子,如果创建的是进程内对象,前期绑定和后期绑定调用效率差别大概2:3左右,也就是说也是1.5倍。对于调用Office这样的外部COM自动化对象,也许差别大一些,没有专门测试,不过对于Office自动化,速度主要是决定于Office本身的启动、初始化。
另外一个劣势是没有了IDE下的属性、方法成员自动列出。
所以,个人认为,在使用VB6的时候,为了得到好的设计,有时不妨使用一些VB6的后期绑定的特性,来提高设计质量。