【QTP】设计模式之命令包装模式-普通函数到命令模式

摘抄至《QTP自动化测试领航》,感觉关于设计模式写的很有独到之处,大家有什么理解或想法,尽情留言。


转化前:

'定义一个乘法函数
Function Multiply(number)
    Multiply = number * number
End Function

'直接打印函数返回值
msgbox Multiply(3)


转化后:

'定义一个 oCommand 类
Class oCommand

    '定义输入
    Private VarIntNum
    Public Property Get Number
        Number = VarIntNum
    End Property

    Public Property Let Number(ByVal oNum)
        VarIntNum = oNum
    End Property

    '定义输出
    Private VarResult

    Public Property Get Result
        Result = VarResult
    End Property

    Public Property Let Result(ByVal oResult)
        VarResult = oResult
    End Property

    '默认主函数
    Public Default Function Exec()
        Me.Result = Number * Number
        Exec = Me.Result
    End Function

End Class

'创建一个构造器
Function Constructor(ByVal newNumber)
    Set Constructor = New oCommand
    Constructor.Number = newNumber
End Function

'调用构造器并输入参数
Set con1 = Constructor(3)

'命令模式
Call con1

'获取命令执行结果
Msgbox con1.result

分析:
脚本中的con1即Client对象,主要负责发布命令,至于发布给谁它不管。那个构造器是命令模式的Invoker对象,作用主要是传递命令,它需要知道具体是给谁传命令。最终传递到oCommand对象的命令执行者也就是Receiver对象。

其实简单的分析一下就会豁然开朗:Client对象就相当于公司的BOSS,他只管发布命令下去,至于这个命令去指派给谁或者谁来完成这个由中层领导(Invoker)来决定,Boss不会管,而中层领导在其中会根据不同的命令来分配给不同的人,具体的执行者交由Receiver对象来执行就行了。

2 thoughts on “【QTP】设计模式之命令包装模式-普通函数到命令模式

  1. Pingback: 足球盘口

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据