/**
單例設(shè)計(jì)模式
1.構(gòu)造方法私有化
2.聲明一個(gè)本類(lèi)對(duì)象
3.給外部提供一個(gè)靜態(tài)方法獲取對(duì)象實(shí)例
1.懶漢式:在第一次調(diào)用getInstance方法時(shí),對(duì)象被創(chuàng)建,到程序結(jié)束后釋放(占用內(nèi)存時(shí)間短,效率低)
2.餓漢式:在類(lèi)被加載后對(duì)象被創(chuàng)建,到程序結(jié)束后釋放(占用內(nèi)存時(shí)間長(zhǎng),提高效率)
單例模式的目的是:節(jié)省重復(fù)創(chuàng)建對(duì)象所帶來(lái)的內(nèi)存消耗,從而提高效率。
1.在設(shè)計(jì)一些工具類(lèi)的時(shí)候(通常工具類(lèi)只有功能方法沒(méi)有屬性)
2.工具類(lèi)可能會(huì)被頻繁調(diào)用
*/
public class Test1 {
public static void main(String[] args) {
Singleton2 s=Singleton2.getInstance();
s.print();
}
}
//餓漢式
class Singleton1{
private Singleton1(){}//不讓外部創(chuàng)建對(duì)象 1.
private static Singleton1 s=new Singleton1();// 2.
public static Singleton1 getInstance(){//3.
return s;
}
public void print(){
System.out.println("測(cè)試方法1");
}
}
//懶漢式
class Singleton2{
private Singleton2() {}
private static Singleton2 s;
public static Singleton2 getInstance(){//需要實(shí)例化時(shí)再創(chuàng)建對(duì)象叫懶漢式
if (s==null){
s=new Singleton2();
}
return s;
}
public void print(){
System.out.println("測(cè)試方法2");
}
}
java9 OOP 單例設(shè)計(jì)模式 2022-02-05
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 目錄1.單例設(shè)計(jì)模式2.抽象類(lèi)Abstract模板設(shè)計(jì)模式3.抽象類(lèi)實(shí)現(xiàn)造房子 1.單例設(shè)計(jì)模式 簡(jiǎn)介:單例模式(...
- Java8 教程 Java8概述Java 8環(huán)境設(shè)置Java 8 Lambda表達(dá)式Java 8方法引用Java ...
- 什么是單例設(shè)計(jì)模式? 單例設(shè)計(jì)模式就是一種控制實(shí)例化對(duì)象個(gè)數(shù)的設(shè)計(jì)模式。 為什么要使用單例設(shè)計(jì)模式? 使用單例設(shè)計(jì)...
- 何時(shí)使用單例模式:當(dāng)需要控制一個(gè)類(lèi)的實(shí)例只有一個(gè), 而且客戶只能從一個(gè)全局訪問(wèn)點(diǎn)去訪問(wèn)她。 經(jīng)典的單例模式有兩種,...