<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>

            java設計模式:多例模式

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

            java設計模式:多例模式

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

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

              ★ 緩存在單例中的使用

              緩存在編程中使用很頻繁,有著非常重要的作用,它能夠幫助程序實現以空間換取時間,通常被設計成整個應用程序所共享的一個空間,

              現要求實現一個用緩存存放單例對象的類。

              說明:該緩存中可以存放多個該類對象,每個對象以一個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;          
               }          
                         
            }          

              實現方式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,>          

              實現方式2: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
            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的結構型模式11-08

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

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院