模式之美_单态

来源:互联网 发布:手机抠图用什么软件 编辑:程序博客网 时间:2024/04/30 07:55

“四人帮”的23个模式中,单态模式应该是比较常用的,在实际开发中,经常使用在系统相对不变的地方,比如与数据库的连接串、基本配置等地方。几年前曾经做过服务的开发,系统需要提供7Windows服务,基本配置写在一个XML文件中,7个服务使用同样的配置,这种情况下,就应该使用单态模式,考虑到有时会修改配置文件,就需要能够根据修改后的配置自动使用新的配置。

       这个类的结构大概如下:

Setup是基本配置,SingleSetup就是我们讨论的单态类,私有变量_setup就是Setup类型。Setup里的成员就是配置信息,具体信息在SingleSetupinitSetup中进行设置。

SingleSetup的具体代码结构如下:

Public Class SingleSetup

    Private Shared _Setup As Setup                      ‘配置信息

    Private Shared _Mutex As New System.Threading.Mutex '同步基元也可用于进程间同步

    Private Shared _LastModyTime As DateTime            最后修改日期

 

    ‘关键,构造函数为私有的,确保只有一个实例运作

    Private Sub New()

        Dim FileName As String =……’此处是配置文件,这里是使用硬编码方式,其实可以通过一个属性传入

        _LastModyTime = System.IO.File.GetLastWriteTime(FileName)

        initSetup(FileName)

    End Sub

 

 

    Private Sub initSetup(ByVal FileName As String)

       ……        ‘此处读取配置文件,为_setup的各个属性赋值

End Sub

 

‘对外的接口,使用这个方法返回系统配置

Public Shared Function GetInstance() As Setup

        Dim FileName As String = ……

        Try

             如果_Setup尚没有初始化或者配置文件已经修改,就重新对_Setup进行配置

             If _Setup Is Nothing Or System.IO.File.GetLastWriteTime(FileName) <> _LastModyTime Then

              _Setup = New Setup

            End If

        Catch

            ……

        Finally

            ……

        End Try

        Return _Setup

    End Function

End Class

 

单态模式简单易用,在处理此类问题的时候,确实是一种简洁高效并且充满美感的方案。

原创粉丝点击