【QTP】设计模式之工厂模式-与单例模式结合

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


Class OutFactory
    Public Channels    '变量定义

    Private Sub Class_Initialize
        Set Me.Channels = CreateObject("Scripting.Dictionary")
    End Sub

    Private Sub Class_Terminate
        Set Me.Channels = Nothing
    End Sub

    Public Sub Construct(sChannelName , sChannelType)
        Dim oNewChannel

        Select Case sChannelType
            Case "excel"
                '创建一个Excel的SINGLETON类
                 Set oNewChannel = New ExcelWrapper
            Case "fso"
                '创建一个FSO的SINGLETON类
                 Set oNewChannel = New fsoWrapper
            Case "DB"
                '创建一个ADO的SINGLETON类
                 Set oNewChannel = New DBWrapper
        End Select

        '把类都存储起来
        Me.Channels.Add sChannelName , oNewChannel
    End Sub
End Class

Public oOutPuts
Set oOutPuts = New OutFactory

'**********************构造方法************************
oOutPuts.Construct "excel_instance" , "excel"
oOutPuts.Construct "fso_instance" , "fso"
oOutPuts.Construct "DB_instance" , "DB"
'
'*************直接取我们需要的东西进行操作**************
oOutPuts.Construct("excel_instance").whatever
'此处的whatever是Excel的SINGLETON类中的自定义方法

分析:
通过上面的封装可以得到一个独立凝聚的单体,且易于实施和管理、维护工厂类。通过工厂的核心来创建、存储、管理需要的输出机制,并利用关键字请求进行对象输出。它是一种在测试设计中非常重要的设计模式。

发表评论

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

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