Java單例模式和多例模式實例分析
本文實例講述了Java單例模式和多例模式。分享給大家供大家參考,具體如下:
一 單例模式
1 代碼
class Boss
{
private static Boss instance;// 靜態(tài)成員變量,用來保存唯一創(chuàng)建的對象實例
private Boss ()
{
// 利用私有化構(gòu)造方法,阻止外部創(chuàng)建對象
}
public static Boss findBoss() //檢查并確保只有一個實例
{
if (instance == null)
{
System.out.println("當(dāng)前沒有老板,馬上指派一個!");
instance = new Boss();
} else {
System.out.println("已經(jīng)有老板了!直接來匯報吧。");
}
return instance;
}
}
public class Singleton
{
public static void main(String[] args)
{
Boss boss1 = null; // 聲明對象boss1
Boss boss2 = null; // 聲明對象boss2
boss1 = Boss.findBoss();//實例化對象
boss2 = Boss.findBoss();//實例化對象
}
}
2 運行
當(dāng)前沒有老板,馬上指派一個!
已經(jīng)有老板了!直接來匯報吧。
二 多例模式
1 代碼
// 枚舉類
enum Sex {
男性, 女性
};
class sexClass {
private String title; // 保存信息
private static final sexClass MALE = new sexClass("男");
private static final sexClass FEMALE = new sexClass("女");
private sexClass( String title ) //私有構(gòu)造方法
{
this.title = "創(chuàng)造的對象性別為: " + title;
System.out.println("構(gòu)造函數(shù)"+title);
}
public static sexClass getInstance( Sex sex )//static方法
{
switch (sex) {
case 男性:
return MALE;
case 女性:
return FEMALE;
default:
return null;
}
}
@Override
public String toString() {
return this.title;
}
}
public class TestMultiton {
public static void main( String args[] ) {
System.out.println(sexClass.getInstance(Sex.男性)); // 如果把這句也注釋上,則輸出結(jié)果為空,體現(xiàn)出賴加載(用時才加載該類)
//System.out.println(sexClass.getInstance(Sex.女性));
}
}
2 運行
構(gòu)造函數(shù)男
構(gòu)造函數(shù)女
創(chuàng)造的對象性別為: 男
3 說明
多例設(shè)計模式,實際就是“單例設(shè)計模式”的擴展版。設(shè)計思想和實現(xiàn)步驟都非常類似。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
MybatisPlus實現(xiàn)insertBatchSomeColumn進行批量增加
本文主要介紹了MybatisPlus實現(xiàn)insertBatchSomeColumn進行批量增加,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
解決MyBatis Mapper的XML文件SQL語句無法自動提示問題(親測有效)
這篇文章主要給大家介紹了如何解決MyBatis Mapper的XML文件SQL語句無法自動提示的問題,文中有詳細(xì)的原因分析,以及通過圖文介紹的解決方案,需要的朋友可以參考下2023-10-10
spring+hibernate 兩種整合方式配置文件的方法
本篇文章主要介紹了spring+hibernate 兩種整合方式配置文件的方法,主要有兩種方式 1、注解方式 2、xml方式實現(xiàn),有興趣的可以了解一下。2017-04-04
Spring中@ConditionalOnProperty注解的作用詳解
這篇文章主要介紹了Spring中@ConditionalOnProperty注解的作用詳解,@ConditionalOnProperty注解主要是用來判斷配置文件中的內(nèi)容來決定配置類是否生效用的,如果條件不匹配,則配置類不生效,需要的朋友可以參考下2024-01-01

