<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 概述 **單例模式**是一種創建型設計模式, 讓你能夠保證一個類只有一個實例, 并提供一個訪問該實例的全局節點。 **單例**模式由于限制了代碼復用,且讓單元測試復雜化而名聲不佳。但它在有些情況下仍然非常實用,特別是在需要控制一些共享資源時十分方便 ## 單例的實現 1. 將默認構造函數設為私有, 防止其他對象使用單例類的 new運算符。 2. 新建一個靜態構建方法作為構造函數。 該函數會 “偷偷” 調用私有構造函數來創建對象, 并將其保存在一個靜態成員變量中。 此后所有對于該函數的調用都將返回這一緩存對象。 ## 單例模式結構 ![](https://img.kancloud.cn/4a/a0/4aa04be27cfd73ca7d233b8f31d50a61_860x580.png) **單例**(Singleton)類聲明了一個名為`get-Instance`獲取實例的靜態方法來返回其所屬類的一個相同實例。 ## 適合應用場景 1. 如果程序中的某個類對于所有客戶端只有一個可用的實例, 可以使用單例模式。 2. 如果你需要更加嚴格地控制全局變量, 可以使用單例模式。 如: 1. 全局日志對象必須對日志文件的訪問權限進行控制。 2. 共享的運行時配置存儲 ## 與其他模式的關系 - 外觀模式類通常可以轉換為單例模式類, 因為在大部分情況下一個外觀對象就足夠了。 - 如果你能將對象的所有共享狀態簡化為一個享元對象, 那么享元模式就和單例類似了。 但這兩個模式有兩個根本性的不同。 - 抽象工廠模式、 生成器模式和原型模式都可以用單例來實現。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看