java設(shè)計(jì)模式:多例模式
導(dǎo)語:Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個(gè)特征。下面我們來看看多例模式,希望對大家有所幫助。
多例設(shè)計(jì)模式:單例+緩存
★ 緩存在單例中的使用
緩存在編程中使用很頻繁,有著非常重要的作用,它能夠幫助程序?qū)崿F(xiàn)以空間換取時(shí)間,通常被設(shè)計(jì)成整個(gè)應(yīng)用程序所共享的一個(gè)空間,
現(xiàn)要求實(shí)現(xiàn)一個(gè)用緩存存放單例對象的類。
說明:該緩存中可以存放多個(gè)該類對象,每個(gè)對象以一個(gè)key值標(biāo)識,key值相同時(shí)所訪問的是同一個(gè)單例對象。
類對象
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; } } |
實(shí)現(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,> |
實(shí)現(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設(shè)計(jì)模式:多例模式】相關(guān)文章:
Java單例設(shè)計(jì)模式12-21
解析Java的設(shè)計(jì)模式編程之解釋器模式的運(yùn)用01-21
Java的設(shè)計(jì)模式編程中責(zé)任鏈模式的運(yùn)用的實(shí)例講解03-13
Java的結(jié)構(gòu)型模式11-08