有时我们需要用一些辅助值初始化单例类。但是我们不能为其“发布”构造函数。有什么解决方法?
注意!我的想法并不包括重载GetInstance或设置颜色。颜色应该只设置一次。我希望确保MyPainter仅使用初始化的颜色进行绘制。任何默认颜色都不应该被使用。
为了更清晰起见,我提供一个示例:
谢谢。
注意!我的想法并不包括重载GetInstance或设置颜色。颜色应该只设置一次。我希望确保MyPainter仅使用初始化的颜色进行绘制。任何默认颜色都不应该被使用。
为了更清晰起见,我提供一个示例:
''' <summary>
''' Singleton class MyPainter
''' </summary>
Public Class MyPainter
Private Shared _pen As Pen
Private Shared _instance As MyPainter = Nothing
Private Sub New()
End Sub
''' <summary>
''' This method should be called only once, like a constructor!
''' </summary>
Public Shared Sub InitializeMyPainter(ByVal defaultPenColor As Color)
_pen = New Pen(defaultPenColor)
End Sub
Public Shared Function GetInstance() As MyPainter
If _instance Is Nothing Then
_instance = New MyPainter
End If
Return _instance
End Function
Public Sub DrawLine(ByVal g As Graphics, ByVal pointA As Point, ByVal pointB As Point)
g.DrawLine(_pen, pointA, pointB)
End Sub
End Class
谢谢。