多例模式

所謂多例模式(multiton pattern)實際上是單例模式的自然推廣,其有一下幾個特點:

  • 多例類可有多個實例。
  • 多例類必須自己創建、管理自己的實例,並且向外界提供自己的實例。(單例類只有一個實例)

代碼實例,擲骰子

import java.util.Date;
import java.util.Random;

public class Die {
 
 //開始先創建兩個骰子
 private static Die die1 = new Die();
 private static Die die2 = new Die();
 
 //構造方法私有
 private Die(){}
 
 public static Die getInstance(int whichone){
  if(1 == whichone){
   return die1;
  }else {
   return die2;
  }
 }
 
 /**
 * 返回一個1~6之間的數
  * @return
  */
 public synchronized int dice(){
//  Date date = new Date();
//  Random r = new Random(date.getTime());
//  int value = r.nextInt();
//  value = Math.abs(value);
//  value = value % 6;
//  value ++;
  double value = Math.random()*6;
  int v = (int)value;
  return ++v;
  
 }
}

測試用的main函數

public static void main(String[] args) {
  
  d1 = Die.getInstance(1);
  System.out.println("第一個骰子的點數:"+d1.dice());
  
  d2 = Die.getInstance(6);
  System.out.println("第二個骰子的點數:"+d2.dice());
 }

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章