99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

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

冬至子 ? 來源:全棧開發(fā)的碼農(nóng) ? 作者:全棧開發(fā)的碼農(nóng) ? 2023-06-01 11:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

圖片

SingleInstance類的代碼如下:

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

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

圖片

調(diào)用SingleInstance生成對象的正確方法:

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

    關(guān)注

    10

    文章

    798

    瀏覽量

    47175
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1662

    瀏覽量

    50203
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    dlpc3470 Splash Pattern模式為什么會設(shè)置最大Pattern周期,這個最大周期能否更改?

    dlpc3470 Splash Pattern 模式為什么會設(shè)置最大 Pattern 周期,這個最大周期能否更改?
    發(fā)表于 02-19 08:41

    DLP4500每個pattern的曝光時間怎么設(shè)置?

    我的應(yīng)用將圖片燒錄到flash中然后在pattern模式下play。但是由于要顯示的pattern太多了,總是需要不停地upload bin文件,時間都花在了燒錄bin文件上了。因此我想用
    發(fā)表于 02-24 08:17

    請問external pattern sequence子模式的正確使用方式是什么?

    在做結(jié)構(gòu)光成像的相關(guān)研究中,想投影大量正弦條紋圖(比如60張)并配合相機實現(xiàn)外觸發(fā),根據(jù)查閱用戶手冊和編程手冊,應(yīng)該將lightcrafter設(shè)置為hdmi模式下的external pattern
    發(fā)表于 02-28 08:38

    DLP中video模式pattern模式有什么區(qū)別?

    你好,請問,在DLP相關(guān)文檔中,有提到video模式pattern模式,請問這兩種模式有什么區(qū)別?
    發(fā)表于 03-03 08:32

    2018年P(guān)ython面試必看的10個面試題

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

    OpenHarmony中的模式實踐

    本文件簡述了實例的基本知識及其應(yīng)用場景,并以O(shè)penHarmony中的代碼為分別從C和C++語言角度來分析和學(xué)習(xí)實例模式。實例
    發(fā)表于 09-15 09:27

    利用golang優(yōu)雅的實現(xiàn)實例分享

    1、利用golang優(yōu)雅的實現(xiàn)實例平時編寫代碼過程中,經(jīng)常會遇到對于全局角度只需運行一次的代碼,比如全局初始化操作,設(shè)計模式中的
    發(fā)表于 10-17 16:46

    關(guān)于iOS開發(fā)單使用問題

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

    模式詳解

    是private的話,會不更好的封裝該內(nèi)呢?我主要是應(yīng)用在使用普通類模擬枚舉類型里,后來發(fā)現(xiàn)這就是傳說中的模式。構(gòu)造函數(shù)弄成private 就是
    發(fā)表于 09-27 15:10 ?0次下載

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

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

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

    通過getInstance()函數(shù)獲取對象,這種模式的關(guān)鍵之處不是在于強迫你用函數(shù)來獲取對象。關(guān)鍵之處是讓static對象定義在函數(shù)內(nèi)部,變成局部static變量。看下這種實現(xiàn)方式
    的頭像 發(fā)表于 06-05 14:14 ?1773次閱讀

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

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

    Python實現(xiàn)模式的五種寫法

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

    php設(shè)計模式和應(yīng)用場景

    ,從小型的網(wǎng)站到大型的企業(yè)級應(yīng)用程序。 下面將介紹一些常見的PHP設(shè)計模式及其應(yīng)用場景。 模式Singleton
    的頭像 發(fā)表于 12-04 14:54 ?1243次閱讀

    OpenHarmony鴻蒙開發(fā)學(xué)習(xí):【Ability的啟動模式

    Stage模型中,實現(xiàn)standard、singleton、specified多種模式場景。
    的頭像 發(fā)表于 04-10 16:32 ?883次閱讀
    OpenHarmony鴻蒙開發(fā)學(xué)習(xí):【Ability的啟動<b class='flag-5'>模式</b>】