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
閱讀(4023)
評論(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 組件(一)
搜索
積分與排名
積分 - 1461450
排名 - 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 代碼(154842)
4.?java 異常捕捉 ( try catch finally ) 你真的掌握了嗎?(70175)
5.?maven jetty 插件使用(49085)
6.?JSP/Servlet 工作原理(43123)
7.?maven jdk 版本配置(40994)
8.?spring mvc(2):請求地址映射(@RequestMapping)(39572)
9.?二叉樹的深度優先遍歷與廣度優先遍歷 [ C++ 實現 ](31256)
10.?maven 多模塊項目(27896)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 fancydeepin
主站蜘蛛池模板:
亚洲综合成人网在线观看
|
在线观看亚洲成人
|
亚洲免费福利在线视频
|
亚洲狠狠综合久久
|
热99RE久久精品这里都是精品免费
|
青青视频观看免费99
|
国产精品二区三区免费播放心
|
亚洲精品无码久久一线
|
两个人看的www免费高清
|
国产亚洲精品看片在线观看
|
丁香花在线观看免费观看图片
|
成人免费毛片内射美女-百度
|
亚洲成A人片在线观看中文
|
日韩一区二区三区免费播放
|
久久久久噜噜噜亚洲熟女综合
|
亚洲香蕉在线观看
|
永久久久免费浮力影院
|
久久久久久久亚洲Av无码
|
亚洲国产人成精品
|
a级毛片免费高清视频
|
亚洲精品无码永久中文字幕
|
国产羞羞的视频在线观看免费
|
免费一级e一片在线播放
|
一区二区三区精品高清视频免费在线播放
|
久久精品亚洲一区二区三区浴池
|
狠狠入ady亚洲精品
|
国产偷国产偷亚洲高清日韩
|
在线综合亚洲欧洲综合网站
|
99热在线免费播放
|
亚洲午夜无码久久久久软件
|
精品一区二区三区免费毛片爱
|
日韩精品电影一区亚洲
|
免费国产99久久久香蕉
|
亚洲另类少妇17p
|
最近中文字幕大全中文字幕免费
|
国产亚洲精品成人AA片新蒲金
|
国产精品冒白浆免费视频
|
亚洲国产综合精品中文字幕
|
久久青青草原国产精品免费
|
va天堂va亚洲va影视中文字幕
|
狼群影院在线观看免费观看直播
|