超碰免费人人操|国产视频二区久久艹人人操|欧美激情第一页在线|久热最新无码中文视频|91精品国际成人|亚洲成人精品在线视频青青草|久草免费高清完整在线观看|你懂的AV在线日本黄网页|国产黄色AV日韩女同网|欧美成人色区导航片av

java設計模式:多例模式

時間:2025-12-23 09:44:33 java語言

java設計模式:多例模式

  導語:Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。下面我們來看看多例模式,希望對大家有所幫助。

  多例設計模式:單例+緩存

  ★ 緩存在單例中的使用

  緩存在編程中使用很頻繁,有著非常重要的作用,它能夠幫助程序?qū)崿F(xiàn)以空間換取時間,通常被設計成整個應用程序所共享的一個空間,

  現(xiàn)要求實現(xiàn)一個用緩存存放單例對象的類。

  說明:該緩存中可以存放多個該類對象,每個對象以一個key值標識,key值相同時所訪問的是同一個單例對象。

  類對象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package cn.hncu.pattern.multi;          
public class A {          
   private int value;          
   public int getValue() {          
       return value;          
   }          
   public void setValue(int value) {          
       this.value = value;          
   }          
             
}          

  實現(xiàn)方式1:key值由用戶指定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package cn.hncu.pattern.multi;          
import java.util.HashMap;          
import java.util.Map;          
/pic/code>          
public class MyBuffer {          
   /pic/code>          
   private static Map<string, a=""> map = new HashMap<string, a="">();          
             
   /pic/code>          
   public static A getInstance(String key){          
                 
       /pic/code>          
       A a = map.get(key);          
                 
       /pic/code>          
       /pic/code>          
       if(a==null){          
           a = new A();          
           map.put(key, a);          
       }          
                 
       return a;          
   }          
             
}          
</string,></string,>          

  實現(xiàn)方式2:key值由代碼內(nèi)部自己決定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package cn.hncu.pattern.multi;          
import java.util.HashMap;          
import java.util.Map;          
/pic/code>          
public class MyBuffer2 {          
   /pic/code>          
   private static Map<integer, a=""> map = new HashMap<integer, a="">();          
             
   private static int num=1;          
   private static final int MAX=5;          
             
   public static A getInstance(){          
       A a = map.get(num);          
       if(a==null){          
           a = new A();          
           map.put(num, a);          
       }          
       num++;          
       if(num>MAX){          
           /pic/code>          
           num=1;          
       }          
       return a;          
   }          
             
}          
</integer,></integer,>          

【java設計模式:多例模式】相關文章:

java設計模式:工廠模式10-04

java設計模式:裝飾模式11-13

java設計模式:DAO模式03-13

JAVA設計模式之單例模式10-19

Java單例設計模式12-21

解析Java的設計模式編程之解釋器模式的運用01-21

Java的設計模式編程中責任鏈模式的運用的實例講解03-13

Java的結(jié)構(gòu)型模式11-08

簡單講解Java的Future編程模式方案09-15