欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中設計模式(多例)的實例詳解

 更新時間:2017年09月21日 09:39:58   作者:海那邊的小萌男  
這篇文章主要介紹了java中設計模式(多例)的實例詳解的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下

java中設計模式(多例)的實例詳解

多例:單例設計模式的變形,可以看成是一個緩存池的單例,而緩存池里面可以存多個數據

實例代碼:

//單例+緩存---沒有控制池大小

public class A {
  //1創(chuàng)建一個單例的池
(private即把池封裝成單例了)
  private static Map<String, A> pool = new HashMap<String, A>(); //池--集合: Map:key-value

  public synchronized static A getInstance(String key){
    //2根據key到池中去獲取obj
    A obj = pool.get(key);
    if(obj==null){
      obj = new A();
      pool.put(key, obj);
    }
    //3如果該obj存在則返回,否則創(chuàng)建一個新的放入池中并返回
    return obj}}

import java.util.HashMap;
import java.util.Map;

//單例+緩存---控制池大小,每個對象的key值由該類內部指定

public class A {
  //1創(chuàng)建一個單例的池
  private static Map<Integer, A> pool = new HashMap<Integer, A>(); //池--集合: Map:key-value

  //當前對象的序號
  private static int num=0;

  //總數量
  private static int MAX_SIZE=3;

  public synchronized static A getInstance(){
    //2根據num到池中去獲取obj
    A obj = pool.get(num);
    if(obj==null){
      obj = new A();
      pool.put(num, obj);
    }
    num = (num+1)%MAX_SIZE; //范圍: 0 ~ MAX_SIZE-1
    //3如果該obj存在則返回,否則創(chuàng)建一個新的放入池中并返回
    return obj;
  }

}

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • 詳解Mybatis注解寫法(附10余個常用例子)

    詳解Mybatis注解寫法(附10余個常用例子)

    這篇文章主要介紹了詳解Mybatis注解寫法(附10余個常用例子),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • spring boot打jar包發(fā)布的方法

    spring boot打jar包發(fā)布的方法

    這篇文章主要介紹了spring boot打jar包發(fā)布的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 從內存地址解析Java的static關鍵字的作用

    從內存地址解析Java的static關鍵字的作用

    這篇文章主要介紹了從內存地址解析Java的static關鍵字的作用,包括靜態(tài)成員變量和靜態(tài)方法等重要內容,需要的朋友可以參考下
    2015-10-10
  • Java?Handler同步屏障淺析講解

    Java?Handler同步屏障淺析講解

    同步屏障機制是什么?Handler發(fā)送的消息分為普通消息、屏障消息、異步消息,一旦Looper在處理消息時遇到屏障消息,那么就不再處理普通的消息,而僅僅處理異步的消息。不再使用屏障后,需要撤銷屏障,不然就再也執(zhí)行不到普通消息了
    2022-08-08
  • 淺談spring-boot的單元測試中,@Before不被執(zhí)行的原因

    淺談spring-boot的單元測試中,@Before不被執(zhí)行的原因

    這篇文章主要介紹了淺談spring-boot的單元測試中,@Before不被執(zhí)行的原因,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Java由淺入深分析多態(tài)的概念

    Java由淺入深分析多態(tài)的概念

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量到底會指向哪個類的實例對象,該引用變量發(fā)出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定
    2022-04-04
  • 詳解Mybatis中的CRUD

    詳解Mybatis中的CRUD

    這篇文章主要介紹了Mybatis中的CRUD的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • JavaEE在線人數管理系統(tǒng)

    JavaEE在線人數管理系統(tǒng)

    這篇文章主要為大家分享了JavaEE在線人數管理系統(tǒng),顯示在線人數、在線人詳細信息、管理員踢人等功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java 中比較對象的用法小結

    Java 中比較對象的用法小結

    在 Java 中,比較對象的方法有多種多樣,每種都有其適用的場景,通過深入理解 equals() 方法、Comparable 接口和 Comparator 接口,我們能夠更好地處理對象之間的比較,使代碼更加靈活、清晰和健壯,本文給大家介紹Java 中比較對象的用法,感興趣的朋友一起看看吧
    2023-12-12
  • java中String字符串刪除空格的七種方式

    java中String字符串刪除空格的七種方式

    在Java中從字符串中刪除空格有很多不同的方法,本文主要介紹了java中String字符串刪除空格的七種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08

最新評論