您好,登錄后才能下訂單哦!
本文實例講述了Java單例模式和多例模式。分享給大家供大家參考,具體如下:
一 單例模式
1 代碼
class Boss { private static Boss instance;// 靜態成員變量,用來保存唯一創建的對象實例 private Boss () { // 利用私有化構造方法,阻止外部創建對象 } public static Boss findBoss() //檢查并確保只有一個實例 { if (instance == null) { System.out.println("當前沒有老板,馬上指派一個!"); instance = new Boss(); } else { System.out.println("已經有老板了!直接來匯報吧。"); } 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 運行
當前沒有老板,馬上指派一個!
已經有老板了!直接來匯報吧。
二 多例模式
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 = "創造的對象性別為: " + title; System.out.println("構造函數"+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.男性)); // 如果把這句也注釋上,則輸出結果為空,體現出賴加載(用時才加載該類) //System.out.println(sexClass.getInstance(Sex.女性)); } }
2 運行
構造函數男
構造函數女
創造的對象性別為: 男
3 說明
多例設計模式,實際就是“單例設計模式”的擴展版。設計思想和實現步驟都非常類似。
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。