'类的继承模式举例:
'创建一个继承类库
Class ClassHelper
private dict
'添加方法
public default function addMethod(name)
set dict(name) = getRef(dict("type") & name)
end function
'创建字典对象
private function createDict()
set createDict = CreateObject("scripting.dictionary")
end function
'复制字典对象
private function copyDict(super,child)
dim key
for each key in super
if isObject(super(key)) then
set child(key) = super(key)
else
child(key) = super(key)
end if
next
set copyDict = child
end function
'新建一个类
public function newClass(name)
set dict = createDict()
dict("type") = name
set newClass = dict
end function
'继承方法
public function [new](super, childType)
set dict = copyDict(super,createDict())
set dict("parent") = super
dict("type") = childType
set extends = dict
end function
'新建继承类
public function [new](super,arrParams)
dim dict : set dict = copyDict(super,createDict())
call dict("initialize")(dict,arrParams)
set [new] =dict
end function
end class
'载入继承帮助类
dim Mercury : set Mercury = new ClassHelper
'############################
'创建一个AutoTestTools新类
'START NEW CLASS
dim AutoTestTools : set AutoTestTools = Mercury.newClass("AutoTestTools")
'PROPERTIES
AutoTestTools("effect") = "Automation Testing"
'METHOD
function AutoTestToolsInitialize(this,arrParams)
this("effect") = arrParams(0)
end function : Mercury "initialize"
function AutoTestToolsLaunch()
MsgBox "Launch AutoTestTools"
end function : Mercury "Launch"
'END CLASS
'###############################
'###############################
'创建一个新继承AutoTestTools的类
'START NEW CLASS
dim QuickTest : set QuickTest = Mercury.extends(AutoTestTools,"QuickTest")
'PROPERTIES
QuickTest("name") = "QuickTest Professional"
QuickTest("support") = "all"
'METHOD
function QuickTestInitialize(this,arrParams)
this("support") = arrParam(0)
end function : Mercury "initialize"
function QuickTestLaunch()
MsgBox "Launch QuickTest"
end function : Mercury "Launch"
'END CLASS
'###############################