24種設(shè)計模式之多例模式(Multition Pattern)

單例模式和多例模式說明:

1. 單例模式和多例模式屬于對象模式。

2. 單例模式的對象在整個系統(tǒng)中只有一份,多例模式可以有多個實(shí)例。

3. 它們都不對外提供構(gòu)造方法,即構(gòu)造方法都為私有。

為什么用單例、多例:

之所以用單例,是因?yàn)闆]必要每個請求都新建一個對象,這樣子既浪費(fèi)CPU又浪費(fèi)內(nèi)存;

之所以用多例,是為了防止并發(fā)問題;即一個請求改變了對象的狀態(tài),此時對象又處理另一個請求,而之前請求對對象狀態(tài)的改變導(dǎo)致了對象對另一個請求做了錯誤的處理;

用單例和多例的標(biāo)準(zhǔn)只有一個:

當(dāng)對象含有可改變的狀態(tài)時(更精確的說就是在實(shí)際應(yīng)用中該狀態(tài)會改變),則多例,否則單例;

這里舉個例子:

public class Sex {

private static Sex manSex = new Sex("Man");

private static Sex womenSex = new Sex("Women");

private String title;

private Sex(String s_title)

{

title = s_title;

}

public static Sex getInstance(int num)

{

switch(num){case ChoiseSex.MAN :

return manSex;

default :

return womenSex;

}}

public String getTitle() {

return title;

}

interface ChoiseSex {

int MAN = 1; int WOMEN = 2; }

}


public class SexTest {

public static void main(String[] args)

{

Sex s_man = Sex.getInstance(Sex.ChoiseSex.MAN);

System.out.println(s_man.getTitle());

System.out.println("===============================================");

Sex s_women = Sex.getInstance(Sex.ChoiseSex.WOMEN);

System.out.println(s_women.getTitle());

}

}

運(yùn)行結(jié)果:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • 單例模式有很多好處,它能夠避免實(shí)例對象的重復(fù)創(chuàng)建,不僅可以減少每次創(chuàng)建對象的時間開銷,還可以節(jié)約內(nèi)存空間;能夠避免...
    修羅掌柜閱讀 878評論 0 3
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,623評論 18 399
  • 摘要:設(shè)計模式之一:單例模式目錄介紹1.單例模式介紹2.單例模式定義3.單例模式使用場景4.單例模式的實(shí)現(xiàn)方式 4...
    肆虐的悲傷閱讀 543評論 0 2
  • 也許你是我生命的流星 在無邊的黑夜里給我希冀 也許 你是春天的柳絮 在微風(fēng)里挽住我的嘆息 也許是遠(yuǎn)處的山 也許是近...
    南方的茶閱讀 339評論 0 0

友情鏈接更多精彩內(nèi)容