Java單例模式和多例模式實例分析
本文實例講述了Java單例模式和多例模式。分享給大家供大家參考,具體如下:
一 單例模式
1 代碼
class Boss
{
private static Boss instance;// 靜態(tài)成員變量,用來保存唯一創(chuàng)建的對象實例
private Boss ()
{
// 利用私有化構造方法,阻止外部創(chuàng)建對象
}
public static Boss findBoss() //檢查并確保只有一個實例
{
if (instance == null)
{
System.out.println("當前沒有老板,馬上指派一個!");
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 運行
當前沒有老板,馬上指派一個!
已經(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 ) //私有構造方法
{
this.title = "創(chuàng)造的對象性別為: " + title;
System.out.println("構造函數(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.男性)); // 如果把這句也注釋上,則輸出結果為空,體現(xiàn)出賴加載(用時才加載該類)
//System.out.println(sexClass.getInstance(Sex.女性));
}
}
2 運行
構造函數(shù)男
構造函數(shù)女
創(chuàng)造的對象性別為: 男
3 說明
多例設計模式,實際就是“單例設計模式”的擴展版。設計思想和實現(xiàn)步驟都非常類似。
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
Maven項目引用第三方jar包找不到類ClassNotFoundException
這篇文章主要為大家介紹了Maven項目引用第三方jar包找不到類ClassNotFoundException解決及原因分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
java 反射getClass .class 的使用方法示例
這篇文章主要介紹了java 反射getClass .class 的使用方法,結合實例形式分析了java類反射機制的相關操作技巧,需要的朋友可以參考下2019-11-11
MyBatis-Plus結合Layui實現(xiàn)分頁方法
MyBatis-Plus 使用簡單,本文主要介紹使用 service 中的 page 方法結合 Layui 前端框架實現(xiàn)分頁效果,具有一定的參考價值,感興趣的可以了解一下2021-08-08
SpringBoot基于redis自定義注解實現(xiàn)后端接口防重復提交校驗
本文主要介紹了SpringBoot基于redis自定義注解實現(xiàn)后端接口防重復提交校驗,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01

