在线观看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>】
    主站蜘蛛池模板: 免费观看老外特级毛片 | 久久久久久全国免费观看 | 一区二区福利 | 国产精品视频网站你懂得 | 四虎精品久久 | 色成人免费网站 | 狼人久久尹人香蕉尹人 | 67pao强力打造高清免费 | 亚洲色图88 | 亚洲第一黄色网 | 色吧亚洲欧美另类 | 日韩一级在线播放免费观看 | 欧美精品激情 | 四虎影视在线影院4hu | 国产亚洲欧美一区 | 一级一级毛片免费播放 | 日韩a视频 | 欧美一欧美一区二三区性 | 免费大片看黄在观看 | 亚洲乱码卡一卡二卡三 | 久久青青成人亚洲精品 | 日韩欧美亚洲综合一区二区 | 五月婷婷影院 | 伊人久久精品成人网 | 四虎影院永久在线 | 三级网址在线观看 | 免费观看老外特级毛片 | 日本免费一级视频 | 白丝丝袜高跟国产在线视频 | 亚洲无吗在线视频 | 国产va精品免费观看 | 91po狼人社在线观看 | 精品女同 | 在线视频精品免费 | 国产亚洲婷婷香蕉久久精品 | 日本理论在线 | 高清不卡一区 | 国产精品不卡片视频免费观看 | 一级看片免费视频 | 天堂8在线天堂资源在线 | 未成人禁止视频高清在线观看 |