加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

.net – 如何初始化Singleton?

发布时间:2020-12-17 07:29:47 所属栏目:百科 来源:网络整理
导读:有时需要使用一些辅助值初始化单例类.但我们不能“发布”它的构造函数.这是什么解决方法? 注意! 重载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

谢谢.

解决方法

如果你想在创建时只初始化一次,为什么不通过调用某个方法在构造函数中做到这一点,这会从某个地方提取参数?如果多次调用此初始化 – 将其转换为单独的方法,如setOptions.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读