在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單例模式(Singleton Pattern)實現的方法

冬至子 ? 來源:全棧開發的碼農 ? 作者:全棧開發的碼農 ? 2023-06-01 11:44 ? 次閱讀

單例模式是指某個類只允許存在一個實例對象,例如在打印機打印文件時,一次只允許打印一個文件;一個程序里的相同彈出對話框只允許有一個。

單例模式通常在需要控制對象數量以節省資源消耗的情況,在實際軟件設計中非常常用,特別是在多線程多進程時,可以避免產生多個實例對象,造成資源浪費。

實現的方法是在類里創建一個private構造函數,這樣其他類就無法通過new的方式生成其實例,只能通過類內部所定義的getInstance()方法生成實例,具有私有的構造函數是單例模式的一個顯著特征。單例模式的一個簡單示例類圖如下圖所示:

圖片

SingleInstance類的代碼如下:

package singleton;
public class SingleInstance {
  //創建類時創建一個實例
  private static SingleInstance singleInstance=new SingleInstance();
  //私有構造函數
  private SingleInstance() {};
  //生成單實例
  public static SingleInstance getSingleInstance() {
    return singleInstance;
  }
  public void showMessage() {
    System.out.println("單例模式信息!");
  }
}

調用SingleInstance生成對象的錯誤方法:用new方法生成對象時,編譯器會報錯。

圖片

調用SingleInstance生成對象的正確方法:

public class SingletonPattern {
  public static void main(String[] args) {
    SingleInstance singleInstance = SingleInstance.getSingleInstance();
    singleInstance.showMessage();
    /*錯誤的調用方法
    SingleInstance singleInstance = new SingleInstance();
    */
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 打印機
    +關注

    關注

    10

    文章

    773

    瀏覽量

    45770
  • 編譯器
    +關注

    關注

    1

    文章

    1636

    瀏覽量

    49172
收藏 人收藏

    評論

    相關推薦

    ADS52J90配置成了test pattern模式,ADC傳輸回來的pattern值出現錯位現象,為什么?

    調試ADS52J90這款芯片時,先將芯片配置成了test pattern模式,但是ADC傳輸回來的pattern值出現錯位現象,抓取frame clk時發現在設定某些特定的pattern
    發表于 01-03 07:21

    2018年Python面試必看的10個面試題

    ,模式是最好的解決方案。__new__()在__init__()之前被調用,用于生成實例對象。利用這個方法和累的屬性的特點可以實現設計
    發表于 07-18 14:52

    OpenHarmony中的模式實踐

    本文件簡述了實例的基本知識及其應用場景,并以OpenHarmony中的代碼為分別從C和C++語言角度來分析和學習實例模式。實例
    發表于 09-15 09:27

    利用golang優雅的實現實例分享

    1、利用golang優雅的實現實例平時編寫代碼過程中,經常會遇到對于全局角度只需運行一次的代碼,比如全局初始化操作,設計模式中的
    發表于 10-17 16:46

    設計模式在網管系統中的設計與實現

    將設計模式引入網管系統可以減少管理系統設計的復雜度,提高系統的開發效率。在分析設計模式中的Singleton模式、Adapter模式、Obs
    發表于 03-04 22:20 ?14次下載

    關于iOS開發單使用問題

    原文鏈接:Avoiding Singleton Abuse 導語 (Singletons),是Cocoa的核心模式之一。在iOS上,
    發表于 09-25 16:25 ?0次下載

    模式詳解

    是private的話,會不更好的封裝該內呢?我主要是應用在使用普通類模擬枚舉類型里,后來發現這就是傳說中的模式。構造函數弄成private 就是
    發表于 09-27 15:10 ?0次下載

    模式分成餓漢模式和懶漢模式解析

    定義:作為對象的創建模式,模式確保某一個類只有一個實例,而且自行實例化并向整個系統提供這個實例。這個類稱為
    發表于 12-11 09:49 ?1651次閱讀

    Land Pattern and Solder Stencil

    Land Pattern and Solder Stencil
    發表于 02-19 11:47 ?7次下載
    Land <b class='flag-5'>Pattern</b> and Solder Stencil

    為什么C++模式不能直接全部使用static變量和static函數呢?

    通過getInstance()函數獲取對象,這種模式的關鍵之處不是在于強迫你用函數來獲取對象。關鍵之處是讓static對象定義在函數內部,變成局部static變量??聪逻@種實現方式
    的頭像 發表于 06-05 14:14 ?1582次閱讀

    嵌入式C語言軟件設計之裝飾器模式(Decorator Pattern

    裝飾器模式(Decorator Pattern),是結構型設計模式的一種,裝飾器模式允許向一個現有的對象添加新的功能,而又不改變其對象結構,這種方式比使用子類繼承的方式更加靈活。
    發表于 03-01 10:55 ?430次閱讀

    Python實現模式的五種寫法

    模式Singleton Pattern) 是一種常用的軟件設計模式,該
    的頭像 發表于 05-24 11:27 ?488次閱讀

    一文詳解UVM設計模式

    本篇是對UVM設計模式 ( 二 ) 參數化類、靜態變量/方法/類、模式、UVM_ROOT、工廠模式
    的頭像 發表于 08-06 10:38 ?1942次閱讀
    一文詳解UVM設計<b class='flag-5'>模式</b>

    php設計模式和應用場景

    ,從小型的網站到大型的企業級應用程序。 下面將介紹一些常見的PHP設計模式及其應用場景。 模式Singleton
    的頭像 發表于 12-04 14:54 ?891次閱讀

    OpenHarmony鴻蒙開發學習:【Ability的啟動模式

    Stage模型中,實現standard、singleton、specified多種模式場景。
    的頭像 發表于 04-10 16:32 ?542次閱讀
    OpenHarmony鴻蒙開發學習:【Ability的啟動<b class='flag-5'>模式</b>】
    主站蜘蛛池模板: 欧美成人影院| 92香蕉视频| h国产在线| 视频在线观看免费网址| 97se亚洲综合| 狂野欧美性色xo影院| 性做久久久久久免费观看| 大黄一级片| 欧美天天| 国产午夜精品一区二区| 天天操天天干天天摸| 天天操夜夜爽| 国产网站大全| 在线观看一区二区三区视频| 欧美一区亚洲二区| 亚洲五月综合缴情婷婷| 91夫妻视频| 欧美日韩一区二区三区毛片| 伊人丁香婷婷综合一区二区| 四虎永久免费地址在线网站| 性生活毛片| 一级特黄女毛毛片| 手机看片1024国产基地| 四虎国产在线观看| 欧美一级一一特黄| 成人综合色站| 日日干日日爽| 日本一本在线视频| 天天干天天碰| 天天射天天色天天干| 精品视频一区在线观看| 久久观看午夜精品| xxxx久久| 亚洲青草视频| 噜噜噜噜天天狠狠| 一本一本大道香蕉久在线精品| 91噜噜噜| 天天视频色| 视频在线免费看| 亚洲综合婷婷| 色综合久久久久久久久五月性色|