Activator.CreateInstance - 解释它以便我能理解

Kje*_*sen 0 vb.net singleton design-patterns

所以我正在看一些示例代码,我不知道该怎么做:

    Private Shared _instance As PollsProvider = Nothing

    Public Shared ReadOnly Property Instance() As PollsProvider
        Get
            If IsNothing(_instance) Then
                _instance = CType(Activator.CreateInstance( _
                    Type.GetType(Globals.Settings.Polls.ProviderType)), PollsProvider)
            End If
            Return _instance
        End Get
    End Property
Run Code Online (Sandbox Code Playgroud)

上面和我通常如何制作一个单身人士有什么区别:

    Private Shared _instance As PollsProvider = Nothing

    Public Shared ReadOnly Property Instance() As PollsProvider
        Get
            If IsNothing(_instance) Then
                _instance = New PollsProvider
            End If
            Return _instance
        End Get
    End Property
Run Code Online (Sandbox Code Playgroud)

ito*_*son 5

第一个代码片段读取要从config创建的PollsProvider类型,而第二个代码片段具有编译的PollsProvider类型.因此,第一个片段允许您在RealPollsProvider,TestPollsProvider,FiddledByOurEvilPaymastersPollsProvider等之间切换配置(无需重新编译/重新部署). .