fancydeepin
毋意,毋必,毋固,毋我。
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-126 評論-247 文章-5 trackbacks-0
java 多例模式:單例模式的推廣
多例模式
實際上就是
單例模式
的推廣,多例模式又劃分為
有上限多例模式
和
無上限多例模式
兩種,有上限多例模式中的多例類的實例是有上限的,
當這個多例類中的上限數值上等于 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)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
github
個人主頁
beanutil
jutil
jexcel
orc
隨筆分類
(8)
junit
maven(8)
隨筆檔案
(104)
2015年6月 (8)
2015年2月 (1)
2015年1月 (1)
2014年9月 (1)
2014年8月 (3)
2014年6月 (10)
2014年5月 (3)
2014年3月 (5)
2013年10月 (1)
2013年9月 (2)
2013年4月 (1)
2013年3月 (2)
2013年2月 (11)
2012年11月 (3)
2012年10月 (14)
2012年8月 (15)
2012年7月 (13)
2012年6月 (10)
最新隨筆
1.?maven 為測試環境、生產環境等不同環境打包
2.?maven 多模塊項目
3.?nexus 搭建 maven 私服
4.?maven 鏡像
5.?maven jetty 插件使用
6.?maven jdk 版本配置
7.?eclipse maven plugin 插件 安裝 和 配置
8.?maven 安裝
9.?ORCP : 從數據庫表到 java 對象生成的 eclipse 插件
10.?jexcel 讀寫EXCEL
11.?linux 系列
12.?spring mvc(2):請求地址映射(@RequestMapping)
13.?spring mvc(1):基礎入門
14.?Java 驗證碼、二維碼
15.?GXT —— TreePanel 組件(一)
搜索
積分與排名
積分 - 1461417
排名 - 15
最新評論
1.?re: Maven 手動添加 JAR 包到本地倉庫[未登錄]
剛安裝好的maven,倉庫里沒有jar包,如何添加jar包呢?
--Firefly
2.?re: java 建造者模式(Builder)
多謝,講的很清楚
--Nimo
3.?re: Maven 手動添加 JAR 包到本地倉庫
很好很強大, 完美的解決了我的問題。。。
--klose
4.?re: eclipse maven plugin 插件 安裝 和 配置
@fancydeepin
鏈接還是失效了啊
--菜鳥一號
5.?re: Maven 手動添加 JAR 包到本地倉庫[未登錄]
@呼吸~
你好,請問,怎么設置代理呢?
--paul
閱讀排行榜
1.?eclipse maven plugin 插件 安裝 和 配置(325792)
2.?Maven 手動添加 JAR 包到本地倉庫(199724)
3.?Lombok 安裝、入門 - 消除冗長的 java 代碼(154841)
4.?java 異常捕捉 ( try catch finally ) 你真的掌握了嗎?(70175)
5.?maven jetty 插件使用(49084)
6.?JSP/Servlet 工作原理(43123)
7.?maven jdk 版本配置(40994)
8.?spring mvc(2):請求地址映射(@RequestMapping)(39572)
9.?二叉樹的深度優先遍歷與廣度優先遍歷 [ C++ 實現 ](31255)
10.?maven 多模塊項目(27896)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 fancydeepin
主站蜘蛛池模板:
久久亚洲国产午夜精品理论片
|
久久永久免费人妻精品
|
亚洲AV成人精品网站在线播放
|
亚洲免费中文字幕
|
亚洲码和欧洲码一码二码三码
|
亚洲精品视频在线观看你懂的
|
久别的草原电视剧免费观看
|
亚洲欧美日韩中文字幕在线一区
|
亚洲AV无码一区二区三区系列
|
亚洲一区二区三区免费视频
|
美女免费精品高清毛片在线视
|
亚洲av永久无码精品漫画
|
在线免费视频一区
|
91视频免费观看
|
亚洲人片在线观看天堂无码
|
国产精品亚洲成在人线
|
成人黄动漫画免费网站视频
|
野花香在线视频免费观看大全
|
精品无码AV无码免费专区
|
国产免费无码AV片在线观看不卡
|
亚洲最大的黄色网
|
国产亚洲一区二区三区在线
|
成人毛片18女人毛片免费
|
最近免费中文字幕中文高清
|
亚洲国产精品无码av
|
免费看片A级毛片免费看
|
一个人免费日韩不卡视频
|
久久亚洲中文无码咪咪爱
|
亚洲一二成人精品区
|
亚洲日韩精品无码专区网站
|
丁香花免费高清视频完整版
|
成全高清在线观看免费
|
国产AV无码专区亚洲AV琪琪
|
亚洲免费视频播放
|
亚洲a一级免费视频
|
深夜国产福利99亚洲视频
|
一个人免费高清在线观看
|
亚洲精品免费在线观看
|
巨胸狂喷奶水视频www网站免费
|
欧美亚洲国产SUV
|
亚洲成aⅴ人片久青草影院按摩
|