您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Java多例設計模式的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Java多例設計模式的示例分析”這篇文章吧。
一、多例設計模式定義
多例設計模式就是存在多個對象實例,供外部應用裯用,比喻數據庫連接池。
二、多例模式靜態類圖
三、多例模式代碼實現
1. 多例模式核心類
package com.demo.multipleton; import java.util.ArrayList; /** * 多例模式 * * @author * */ public class Multipleton { // 多例數量 private static final int N = 10; // 存放N個實例對象的容器 private static ArrayList<Multipleton> list = new ArrayList<Multipleton>(N); // 每個對象的序號 標識 private int no; // 私有構造方法 防止外界應用程序實例化 private Multipleton(int no) { this.no = no; System.out.println("-- Create Multipleton Object[" + no + "]!"); } // 實例化N個對象實例 static { // 添加Multipleton對象實例 for (int i = 0; i < N; i++) { list.add(new Multipleton(i)); } } /** * 隨機獲得 實例對象 */ public static Multipleton getRandomInstance() { // 獲得隨機數字 int num = (int) (Math.random() * N); // 獲得list中的對象實例 return list.get(num); } public int getNo() { return no; } public void setNo(int no) { this.no = no; } }
2. 多例模式客戶端
package com.demo; import com.demo.multipleton.Multipleton; /** * 客戶端應用程序 * * @author * */ public class MultipletonClient { /** * @param args */ public static void main(String[] args) { // 獲得Multipleton對象實例 Multipleton multipleton = Multipleton.getRandomInstance(); System.out.println("multipleton:" + multipleton.getNo()); // 在次獲得Multipleton對象實例 Multipleton multipleton2 = Multipleton.getRandomInstance(); System.out.println("multipleton2:" + multipleton2.getNo()); // 比較兩個對象是否是同一個對象實例 if (multipleton == multipleton2) { System.out.println("--這是同一個對象!"); } else { System.out.println("--這是不同的對象!"); } } }
3. 運行結果
-- Create Multipleton Object[0]!
-- Create Multipleton Object[1]!
-- Create Multipleton Object[2]!
-- Create Multipleton Object[3]!
-- Create Multipleton Object[4]!
-- Create Multipleton Object[5]!
-- Create Multipleton Object[6]!
-- Create Multipleton Object[7]!
-- Create Multipleton Object[8]!
-- Create Multipleton Object[9]!
multipleton:2
multipleton2:2
--這是同一個對象!
4. 從上面程序運行結果,可以得出兩個結論
① 實例化N個實例對象的過程只執行一次。
② 隨機獲得Multipleton對象。
以上是“Java多例設計模式的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。