<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-126  評論-247  文章-5  trackbacks-0

    多例模式實際上就是單例模式的推廣,多例模式又劃分為有上限多例模式無上限多例模式兩種,有上限多例模式中的多例類的實例是有上限的,
    當這個多例類中的上限數值上等于 1 時,此時,多例類退化回到了單例類;而對于無上限多例模式中的多例類,它的上限是沒有限制的,也就是說它的上限數值是不確定的,
    這個多例類并不一定能夠退化成單例類;

    單例模式與多例模式一般性結構:


    多例模式特點:
         1. 多例類可以有多個實例
         2. 多例類必須自己創建自己的實例,并管理自己的實例,和向外界提供自己的實例


    多例類的一個實例,比如:一副麻將都需要有兩顆骰子,在沒有特別意外發生的情況下,這副麻將打多少圈用的都將是這兩顆骰子,兩顆骰子代表的是不同的兩個狀態,
    這里可以將骰子設計成多例類,如圖:


    多例類:Dice.java

    package pattern.multion;

    import java.util.Random;
    /**
     * -----------------------------------------
     * @描述  骰子有上限多例類
     * @作者  fancy
     * @郵箱  fancydeepin@yeah.net
     * @日期  2012-7-31 <p>
     * -----------------------------------------
     
    */

    public class Dice {

        
    public  static final int  INSTANCE1 = 0;
        
    public  static final int  INSTANCE2 = 1;
        
    private static final Dice DICE_INSTANCE1 = new Dice(); //餓漢式
        private static final Dice DICE_INSTANCE2 = new Dice(); //餓漢式
        
        
    //私有化構造子,阻止外部直接實例化對象
        private Dice(){
            
        }

        
        
    /**
         * <B>方法描述:</B>
         * <p style="margin-left:20px;color:#A52A2A;">
         * 獲取多例類的實例
         * 
    @param which <span style="color: #008080;"> 取值范圍:<BR>
         * ① Dice.INSTANCE1:返回Dice的第一個實例對象<BR>
         * ② Dice.INSTANCE2:返回Dice的第二個實例對象<BR>
         * </span>
         * 
    @return <span style="color: #008080;"> 返回Dice的一個實例對象 </span>
         
    */

        
    public static Dice getInstance(int which){
            
            
    switch(which){
                
    case INSTANCE1 :
                    
    return DICE_INSTANCE1;
                
    case INSTANCE2 :
                    
    return DICE_INSTANCE2;
                
    default :
                    
    try {
                        
    throw new Exception("找不到與參數 " + which + " 相匹配的實例!");
                    }
     catch (Exception e) {e.printStackTrace();}
            }

            
    return null;
        }

        
        
    /**
         * <B>方法描述:</B>
         * <p style="margin-left:20px;color:#A52A2A;">
         * 此方法是線程安全的,調用該方法來擲骰子
         * 
    @return <span style="color: #008080;"> 返回骰子的點數 </span>
         
    */

        
    public synchronized int roll(){
            
            
    try {
                Random ran 
    = new Random(System.currentTimeMillis());
                
    int rollValue = ran.nextInt();
                rollValue 
    %= 6;
                Thread.sleep(
    6);
                
    return rollValue > 0 ? ++rollValue : --rollValue * -1;
            }
     catch (Exception e) {e.printStackTrace();}
            
            
    return 1;
        }

    }



    客戶端測試類:Mahjong.java

    package pattern.multion;
    /**
     * -----------------------------------------
     * @描述  客戶端測試類
     * @作者  fancy
     * @郵箱  fancydeepin@yeah.net
     * @日期  2012-7-31 <p>
     * -----------------------------------------
     
    */

    public class Mahjong {

        
    private static Dice dice1 = Dice.getInstance(Dice.INSTANCE1),
                                              dice2 
    = Dice.getInstance(Dice.INSTANCE2);
        
        
    public static void main(String[] args){

            
    int value1 = dice1.roll();
            
    int value2 = dice2.roll();
            System.out.println(value1);
            System.out.println(value2);
        }

        
    }



      
    posted on 2012-07-31 17:44 fancydeepin 閱讀(4022) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲国产午夜精品理论片 | 久久永久免费人妻精品| 亚洲AV成人精品网站在线播放| 亚洲免费中文字幕| 亚洲码和欧洲码一码二码三码| 亚洲精品视频在线观看你懂的| 久别的草原电视剧免费观看| 亚洲欧美日韩中文字幕在线一区 | 亚洲AV无码一区二区三区系列| 亚洲一区二区三区免费视频| 美女免费精品高清毛片在线视| 亚洲av永久无码精品漫画| 在线免费视频一区| 91视频免费观看| 亚洲人片在线观看天堂无码| 国产精品亚洲成在人线| 成人黄动漫画免费网站视频| 野花香在线视频免费观看大全 | 精品无码AV无码免费专区 | 国产免费无码AV片在线观看不卡| 亚洲最大的黄色网| 国产亚洲一区二区三区在线| 成人毛片18女人毛片免费| 最近免费中文字幕中文高清 | 亚洲国产精品无码av| 免费看片A级毛片免费看| 一个人免费日韩不卡视频| 久久亚洲中文无码咪咪爱| 亚洲一二成人精品区| 亚洲日韩精品无码专区网站| 丁香花免费高清视频完整版| 成全高清在线观看免费| 国产AV无码专区亚洲AV琪琪| 亚洲免费视频播放| 亚洲a一级免费视频| 深夜国产福利99亚洲视频| 一个人免费高清在线观看| 亚洲精品免费在线观看| 巨胸狂喷奶水视频www网站免费| 欧美亚洲国产SUV| 亚洲成aⅴ人片久青草影院按摩|